summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDouglas Gregor <doug.gregor@gmail.com>2005-07-31 16:29:54 +0000
committerDouglas Gregor <doug.gregor@gmail.com>2005-07-31 16:29:54 +0000
commit231e8e0e87a8575e877f9f55c584d41d4f8c01c1 (patch)
tree8cdc1a47e9b008e8975efd8bba0f7c43367c6a42 /doc
parent242ff8fef1c80acba2252b4fa13ede4949aed059 (diff)
downloadboost-231e8e0e87a8575e877f9f55c584d41d4f8c01c1.tar.gz
Add BoostBook-generated HTML docs
[SVN r30339]
Diffstat (limited to 'doc')
-rw-r--r--doc/html/Assignable.html101
-rw-r--r--doc/html/BOOST_ONCE_INIT.html54
-rw-r--r--doc/html/BOOST_TRIBOOL_THIRD_STATE.html49
-rw-r--r--doc/html/BOOST_VARIANT_ENUM_PARAMS.html59
-rw-r--r--doc/html/BOOST_VARIANT_LIMIT_TYPES.html52
-rw-r--r--doc/html/BidirectionalIterator.html165
-rw-r--r--doc/html/CopyConstructible.html90
-rw-r--r--doc/html/DefaultConstructible.html83
-rw-r--r--doc/html/EqualityComparable.html91
-rw-r--r--doc/html/FinderConcept.html58
-rw-r--r--doc/html/FormatterConcept.html58
-rw-r--r--doc/html/ForwardIterator.html182
-rw-r--r--doc/html/InputIterator.html190
-rw-r--r--doc/html/LessThanComparable.html105
-rw-r--r--doc/html/OutputIterator.html200
-rw-r--r--doc/html/RandomAccessIterator.html230
-rw-r--r--doc/html/SignedInteger.html256
-rw-r--r--doc/html/abstract_variables_map.html107
-rw-r--r--doc/html/acst_dst_trait.html75
-rw-r--r--doc/html/all.html64
-rw-r--r--doc/html/all_date_names_put.html120
-rw-r--r--doc/html/ambiguous_option.html71
-rw-r--r--doc/html/ambiguous_result.html62
-rw-r--r--doc/html/any.html112
-rw-r--r--doc/html/any/reference.html86
-rw-r--r--doc/html/any/s02.html144
-rw-r--r--doc/html/any/s04.html39
-rw-r--r--doc/html/any_cast.html69
-rw-r--r--doc/html/apa.html111
-rw-r--r--doc/html/apply_visitor.html103
-rw-r--r--doc/html/apply_visitor_delayed_t.html91
-rw-r--r--doc/html/array.html122
-rw-r--r--doc/html/array/ack.html39
-rw-r--r--doc/html/array/more/info.html48
-rw-r--r--doc/html/array/rationale.html74
-rw-r--r--doc/html/array/reference.html59
-rw-r--r--doc/html/bad_adjustment.html62
-rw-r--r--doc/html/bad_any_cast.html53
-rw-r--r--doc/html/bad_day_of_month.html66
-rw-r--r--doc/html/bad_day_of_year.html62
-rw-r--r--doc/html/bad_field_count.html62
-rw-r--r--doc/html/bad_function_call.html61
-rw-r--r--doc/html/bad_get.html53
-rw-r--r--doc/html/bad_month.html62
-rw-r--r--doc/html/bad_offset.html62
-rw-r--r--doc/html/bad_visit.html52
-rw-r--r--doc/html/bad_weekday.html62
-rw-r--r--doc/html/bad_year.html62
-rw-r--r--doc/html/barrier.html117
-rw-r--r--doc/html/base_time.html129
-rw-r--r--doc/html/basic_command_line_parser.html101
-rw-r--r--doc/html/basic_option.html74
-rw-r--r--doc/html/basic_parsed_options.html71
-rw-r--r--doc/html/bbv2.html124
-rw-r--r--doc/html/bbv2/advanced.html255
-rw-r--r--doc/html/bbv2/advanced/build_process.html194
-rw-r--r--doc/html/bbv2/advanced/builtins/features.html172
-rw-r--r--doc/html/bbv2/advanced/builtins/targets.html390
-rw-r--r--doc/html/bbv2/advanced/differences_to_v1.html138
-rw-r--r--doc/html/bbv2/advanced/jamfiles.html465
-rw-r--r--doc/html/bbv2/arch.html77
-rw-r--r--doc/html/bbv2/arch/build.html196
-rw-r--r--doc/html/bbv2/arch/targets.html396
-rw-r--r--doc/html/bbv2/arch/tools.html48
-rw-r--r--doc/html/bbv2/extender.html139
-rw-r--r--doc/html/bbv2/extending/features.html262
-rw-r--r--doc/html/bbv2/extending/rules.html109
-rw-r--r--doc/html/bbv2/extending/targets.html148
-rw-r--r--doc/html/bbv2/extending/tools.html247
-rw-r--r--doc/html/bbv2/extending/toolset_modules.html124
-rw-r--r--doc/html/bbv2/faq.html149
-rw-r--r--doc/html/bbv2/faq/dll-path.html110
-rw-r--r--doc/html/bbv2/faq/envar.html72
-rw-r--r--doc/html/bbv2/faq/external.html77
-rw-r--r--doc/html/bbv2/faq/s03.html80
-rw-r--r--doc/html/bbv2/faq/s04.html82
-rw-r--r--doc/html/bbv2/faq/s06.html61
-rw-r--r--doc/html/bbv2/faq/s07.html76
-rw-r--r--doc/html/bbv2/howto.html66
-rw-r--r--doc/html/bbv2/installation.html170
-rw-r--r--doc/html/bbv2/recipies/site-config.html69
-rw-r--r--doc/html/bbv2/reference.html337
-rw-r--r--doc/html/bbv2/reference/buildprocess.html141
-rw-r--r--doc/html/bbv2/reference/definitions.html379
-rw-r--r--doc/html/bbv2/reference/generators.html196
-rw-r--r--doc/html/bbv2/reference/jamfiles.html79
-rw-r--r--doc/html/bbv2/tutorial.html135
-rw-r--r--doc/html/bbv2/tutorial/conditions.html88
-rw-r--r--doc/html/bbv2/tutorial/hierarchy.html144
-rw-r--r--doc/html/bbv2/tutorial/libs.html170
-rw-r--r--doc/html/bbv2/tutorial/linkage.html149
-rw-r--r--doc/html/bbv2/tutorial/prebuilt.html124
-rw-r--r--doc/html/bbv2/tutorial/properties.html173
-rw-r--r--doc/html/bool_switch.html49
-rw-r--r--doc/html/boost/any.html186
-rw-r--r--doc/html/boost/array.html351
-rw-r--r--doc/html/boost/date_time/date.html137
-rw-r--r--doc/html/boost/function.html402
-rw-r--r--doc/html/boost/gregorian/date.html99
-rw-r--r--doc/html/boost/hash.html64
-rw-r--r--doc/html/boost/logic/tribool.html103
-rw-r--r--doc/html/boost/variant.html397
-rw-r--r--doc/html/boost_staticassert.html233
-rw-r--r--doc/html/boost_staticassert/how.html56
-rw-r--r--doc/html/boost_staticassert/test.html122
-rw-r--r--doc/html/boost_typetraits.html165
-rw-r--r--doc/html/boost_typetraits/background.html468
-rw-r--r--doc/html/boost_typetraits/category.html327
-rw-r--r--doc/html/boost_typetraits/credits.html68
-rw-r--r--doc/html/boost_typetraits/examples.html231
-rw-r--r--doc/html/boost_typetraits/intrinsics.html137
-rw-r--r--doc/html/boost_typetraits/mpl.html49
-rw-r--r--doc/html/boost_typetraits/reference.html1768
-rw-r--r--doc/html/boost_typetraits/user_defined.html71
-rw-r--r--doc/html/boostbook.html84
-rw-r--r--doc/html/boostbook/documenting.html135
-rw-r--r--doc/html/boostbook/documenting/s02.html120
-rw-r--r--doc/html/boostbook/dtd/boostbook.html93
-rw-r--r--doc/html/boostbook/dtd/class-specialization.html115
-rw-r--r--doc/html/boostbook/dtd/class.html156
-rw-r--r--doc/html/boostbook/dtd/code.html93
-rw-r--r--doc/html/boostbook/dtd/compile-fail-test.html85
-rw-r--r--doc/html/boostbook/dtd/compile-test.html85
-rw-r--r--doc/html/boostbook/dtd/complexity.html86
-rw-r--r--doc/html/boostbook/dtd/constructor.html111
-rw-r--r--doc/html/boostbook/dtd/copy-assignment.html121
-rw-r--r--doc/html/boostbook/dtd/data-member.html95
-rw-r--r--doc/html/boostbook/dtd/default.html86
-rw-r--r--doc/html/boostbook/dtd/description.html96
-rw-r--r--doc/html/boostbook/dtd/destructor.html109
-rw-r--r--doc/html/boostbook/dtd/effects.html86
-rw-r--r--doc/html/boostbook/dtd/enum.html95
-rw-r--r--doc/html/boostbook/dtd/enumvalue.html93
-rw-r--r--doc/html/boostbook/dtd/free-function-group.html94
-rw-r--r--doc/html/boostbook/dtd/function.html165
-rw-r--r--doc/html/boostbook/dtd/functionname.html97
-rw-r--r--doc/html/boostbook/dtd/header.html92
-rw-r--r--doc/html/boostbook/dtd/if-fails.html59
-rw-r--r--doc/html/boostbook/dtd/inherit.html99
-rw-r--r--doc/html/boostbook/dtd/lib.html53
-rw-r--r--doc/html/boostbook/dtd/library-reference.html113
-rw-r--r--doc/html/boostbook/dtd/library.html113
-rw-r--r--doc/html/boostbook/dtd/librarycategory.html92
-rw-r--r--doc/html/boostbook/dtd/librarycategorydef.html96
-rw-r--r--doc/html/boostbook/dtd/librarycategorylist.html93
-rw-r--r--doc/html/boostbook/dtd/libraryinfo.html88
-rw-r--r--doc/html/boostbook/dtd/librarylist.html90
-rw-r--r--doc/html/boostbook/dtd/libraryname.html86
-rw-r--r--doc/html/boostbook/dtd/librarypurpose.html88
-rw-r--r--doc/html/boostbook/dtd/link-fail-test.html85
-rw-r--r--doc/html/boostbook/dtd/link-test.html85
-rw-r--r--doc/html/boostbook/dtd/method-group.html94
-rw-r--r--doc/html/boostbook/dtd/method.html124
-rw-r--r--doc/html/boostbook/dtd/namespace.html120
-rw-r--r--doc/html/boostbook/dtd/notes.html86
-rw-r--r--doc/html/boostbook/dtd/overloaded-function.html110
-rw-r--r--doc/html/boostbook/dtd/overloaded-method.html110
-rw-r--r--doc/html/boostbook/dtd/parameter.html74
-rw-r--r--doc/html/boostbook/dtd/paramtype.html86
-rw-r--r--doc/html/boostbook/dtd/postconditions.html86
-rw-r--r--doc/html/boostbook/dtd/precondition.html86
-rw-r--r--doc/html/boostbook/dtd/programlisting.html72
-rw-r--r--doc/html/boostbook/dtd/purpose.html86
-rw-r--r--doc/html/boostbook/dtd/rationale.html85
-rw-r--r--doc/html/boostbook/dtd/requirement.html82
-rw-r--r--doc/html/boostbook/dtd/requires.html86
-rw-r--r--doc/html/boostbook/dtd/returns.html86
-rw-r--r--doc/html/boostbook/dtd/run-fail-test.html85
-rw-r--r--doc/html/boostbook/dtd/run-test.html85
-rw-r--r--doc/html/boostbook/dtd/signature.html111
-rw-r--r--doc/html/boostbook/dtd/snippet.html72
-rw-r--r--doc/html/boostbook/dtd/source.html64
-rw-r--r--doc/html/boostbook/dtd/specialization.html87
-rw-r--r--doc/html/boostbook/dtd/static-constant.html96
-rw-r--r--doc/html/boostbook/dtd/struct-specialization.html116
-rw-r--r--doc/html/boostbook/dtd/struct.html115
-rw-r--r--doc/html/boostbook/dtd/template-arg.html86
-rw-r--r--doc/html/boostbook/dtd/template-nontype-parameter.html95
-rw-r--r--doc/html/boostbook/dtd/template-type-parameter.html94
-rw-r--r--doc/html/boostbook/dtd/template-varargs.html94
-rw-r--r--doc/html/boostbook/dtd/template.html89
-rw-r--r--doc/html/boostbook/dtd/testsuite.html92
-rw-r--r--doc/html/boostbook/dtd/throws.html86
-rw-r--r--doc/html/boostbook/dtd/type.html86
-rw-r--r--doc/html/boostbook/dtd/typedef.html95
-rw-r--r--doc/html/boostbook/dtd/union-specialization.html116
-rw-r--r--doc/html/boostbook/dtd/union.html115
-rw-r--r--doc/html/boostbook/dtd/using-class.html92
-rw-r--r--doc/html/boostbook/dtd/using-namespace.html92
-rw-r--r--doc/html/boostbook/getting/started.html86
-rw-r--r--doc/html/boostbook/introduction.html85
-rw-r--r--doc/html/boostbook/sectioning.html60
-rw-r--r--doc/html/boostbook/setup/manual.html168
-rw-r--r--doc/html/boostbook/setup/running.html106
-rw-r--r--doc/html/boostbook/setup/troubleshooting.html46
-rw-r--r--doc/html/boostbook/together.html89
-rw-r--r--doc/html/c_local_adjustor.html62
-rw-r--r--doc/html/c_time.html65
-rw-r--r--doc/html/call_once.html74
-rw-r--r--doc/html/concepts/reference.html87
-rw-r--r--doc/html/condition.html209
-rw-r--r--doc/html/connection.html237
-rw-r--r--doc/html/const_formatter.html59
-rw-r--r--doc/html/constrained_value.html93
-rw-r--r--doc/html/contains.html68
-rw-r--r--doc/html/convert_string_type.html50
-rw-r--r--doc/html/counted_time_rep.html105
-rw-r--r--doc/html/counted_time_system.html103
-rw-r--r--doc/html/custom_time_zone.html99
-rw-r--r--doc/html/data_not_accessible.html66
-rw-r--r--doc/html/date_duration.html107
-rw-r--r--doc/html/date_facet.html207
-rw-r--r--doc/html/date_formatter.html63
-rw-r--r--doc/html/date_generator_formatter.html167
-rw-r--r--doc/html/date_generator_parser.html186
-rw-r--r--doc/html/date_input_facet.html187
-rw-r--r--doc/html/date_itr.html78
-rw-r--r--doc/html/date_itr_base.html101
-rw-r--r--doc/html/date_names_put.html144
-rw-r--r--doc/html/date_time.html234
-rw-r--r--doc/html/date_time/date_time_io.html2343
-rw-r--r--doc/html/date_time/details.html1141
-rw-r--r--doc/html/date_time/doxy.html1833
-rw-r--r--doc/html/date_time/examples.html1125
-rw-r--r--doc/html/date_time/examples/general_usage_examples.html126
-rw-r--r--doc/html/date_time/gregorian.html1277
-rw-r--r--doc/html/date_time/local_time.html1497
-rw-r--r--doc/html/date_time/posix_time.html1298
-rw-r--r--doc/html/date_time/serialization.html139
-rw-r--r--doc/html/day_calc_dst_rule.html82
-rw-r--r--doc/html/day_clock.html80
-rw-r--r--doc/html/day_functor.html71
-rw-r--r--doc/html/days_before_weekday.html50
-rw-r--r--doc/html/days_until_weekday.html50
-rw-r--r--doc/html/dst_calc_engine.html77
-rw-r--r--doc/html/dst_calculator.html172
-rw-r--r--doc/html/dst_day_calc_rule.html75
-rw-r--r--doc/html/dst_not_valid.html62
-rw-r--r--doc/html/duplicate_option_error.html64
-rw-r--r--doc/html/duration_from_string.html48
-rw-r--r--doc/html/duration_traits_adapted.html60
-rw-r--r--doc/html/duration_traits_long.html60
-rw-r--r--doc/html/empty_formatter.html52
-rw-r--r--doc/html/ends_with.html68
-rw-r--r--doc/html/environment_iterator.html70
-rw-r--r--doc/html/eof_iterator.html106
-rw-r--r--doc/html/equals.html68
-rw-r--r--doc/html/erase_all.html59
-rw-r--r--doc/html/erase_all_copy.html70
-rw-r--r--doc/html/erase_all_regex.html63
-rw-r--r--doc/html/erase_all_regex_copy.html76
-rw-r--r--doc/html/erase_first.html59
-rw-r--r--doc/html/erase_first_copy.html70
-rw-r--r--doc/html/erase_head.html59
-rw-r--r--doc/html/erase_head_copy.html70
-rw-r--r--doc/html/erase_last.html59
-rw-r--r--doc/html/erase_last_copy.html70
-rw-r--r--doc/html/erase_nth.html61
-rw-r--r--doc/html/erase_nth_copy.html73
-rw-r--r--doc/html/erase_range.html60
-rw-r--r--doc/html/erase_range_copy.html71
-rw-r--r--doc/html/erase_regex.html63
-rw-r--r--doc/html/erase_regex_copy.html76
-rw-r--r--doc/html/erase_tail.html59
-rw-r--r--doc/html/erase_tail_copy.html70
-rw-r--r--doc/html/error.html64
-rw-r--r--doc/html/eu_dst_trait.html83
-rw-r--r--doc/html/find.html63
-rw-r--r--doc/html/find_all.html69
-rw-r--r--doc/html/find_all_regex.html73
-rw-r--r--doc/html/find_first.html65
-rw-r--r--doc/html/find_format.html61
-rw-r--r--doc/html/find_format_all.html62
-rw-r--r--doc/html/find_format_all_copy.html74
-rw-r--r--doc/html/find_format_copy.html74
-rw-r--r--doc/html/find_head.html65
-rw-r--r--doc/html/find_iterator.html110
-rw-r--r--doc/html/find_last.html65
-rw-r--r--doc/html/find_nth.html65
-rw-r--r--doc/html/find_regex.html68
-rw-r--r--doc/html/find_tail.html65
-rw-r--r--doc/html/find_token.html68
-rw-r--r--doc/html/first_finder.html62
-rw-r--r--doc/html/first_kday_after.html78
-rw-r--r--doc/html/first_kday_before.html78
-rw-r--r--doc/html/first_kday_of_month.html97
-rw-r--r--doc/html/first_last_rule_spec.html49
-rw-r--r--doc/html/fixed_string_to_int.html52
-rw-r--r--doc/html/format_date_parser.html184
-rw-r--r--doc/html/from_ftime.html49
-rw-r--r--doc/html/function.html110
-rw-r--r--doc/html/function/faq.html216
-rw-r--r--doc/html/function/history.html111
-rw-r--r--doc/html/function/misc.html106
-rw-r--r--doc/html/function/reference.html184
-rw-r--r--doc/html/function/testsuite.html196
-rw-r--r--doc/html/function/tutorial.html322
-rwxr-xr-xdoc/html/functionN.html402
-rw-r--r--doc/html/function_base.html96
-rw-r--r--doc/html/function_equal.html52
-rw-r--r--doc/html/gather_month_strings.html63
-rw-r--r--doc/html/gather_weekday_strings.html64
-rw-r--r--doc/html/get.html96
-rw-r--r--doc/html/greg_day.html69
-rw-r--r--doc/html/greg_durations_config.html49
-rw-r--r--doc/html/greg_facet_config.html50
-rw-r--r--doc/html/greg_month.html103
-rw-r--r--doc/html/greg_weekday.html79
-rw-r--r--doc/html/greg_year.html65
-rw-r--r--doc/html/gregorian_calendar.html51
-rw-r--r--doc/html/gregorian_calendar_base.html89
-rw-r--r--doc/html/has_const_time_erase.html54
-rw-r--r--doc/html/has_const_time_insert.html54
-rw-r--r--doc/html/has_native_replace.html54
-rw-r--r--doc/html/has_stable_iterators.html54
-rw-r--r--doc/html/hash.html111
-rw-r--r--doc/html/hash/acknowledgements.html53
-rw-r--r--doc/html/hash/combine.html106
-rw-r--r--doc/html/hash/custom.html103
-rw-r--r--doc/html/hash/links.html53
-rw-r--r--doc/html/hash/portability.html106
-rw-r--r--doc/html/hash/reference_.html163
-rw-r--r--doc/html/hash/tutorial.html90
-rw-r--r--doc/html/hash_combine.html62
-rw-r--r--doc/html/hash_range.html82
-rw-r--r--doc/html/head_finder.html59
-rw-r--r--doc/html/hours.html63
-rw-r--r--doc/html/icontains.html67
-rw-r--r--doc/html/id1000125.html48
-rw-r--r--doc/html/id1000285.html57
-rw-r--r--doc/html/id1001098.html64
-rw-r--r--doc/html/id1002952-bb.html69
-rw-r--r--doc/html/id1003606.html61
-rw-r--r--doc/html/id1004063.html50
-rw-r--r--doc/html/id1004324.html63
-rw-r--r--doc/html/id1004405.html63
-rw-r--r--doc/html/id1004493.html63
-rw-r--r--doc/html/id1004573.html63
-rw-r--r--doc/html/id1010247.html52
-rw-r--r--doc/html/id1037413.html56
-rw-r--r--doc/html/id1038994.html49
-rw-r--r--doc/html/id1042434.html64
-rw-r--r--doc/html/id1045709-bb.html97
-rw-r--r--doc/html/id1045724.html52
-rw-r--r--doc/html/id1067334.html57
-rw-r--r--doc/html/id1068792.html57
-rw-r--r--doc/html/id1070986.html62
-rw-r--r--doc/html/id1075450.html68
-rw-r--r--doc/html/id1076157.html49
-rw-r--r--doc/html/id1076705.html63
-rw-r--r--doc/html/id1081555.html90
-rw-r--r--doc/html/id1104430.html77
-rw-r--r--doc/html/id1108211.html50
-rw-r--r--doc/html/id1109157.html63
-rw-r--r--doc/html/id1111919.html48
-rw-r--r--doc/html/id1112796.html49
-rw-r--r--doc/html/id1140631.html57
-rw-r--r--doc/html/id1142955-bb.html70
-rw-r--r--doc/html/id1149596.html49
-rw-r--r--doc/html/id1151195.html69
-rw-r--r--doc/html/id1171494.html63
-rw-r--r--doc/html/id1178955.html44
-rw-r--r--doc/html/id1214336.html60
-rw-r--r--doc/html/id1217789.html63
-rw-r--r--doc/html/id1222024.html49
-rw-r--r--doc/html/id1222476.html90
-rw-r--r--doc/html/id1244293.html48
-rw-r--r--doc/html/id1245151.html57
-rw-r--r--doc/html/id1286986.html54
-rw-r--r--doc/html/id1287075.html55
-rw-r--r--doc/html/id1351704.html52
-rw-r--r--doc/html/id660313.html48
-rw-r--r--doc/html/id681933.html49
-rw-r--r--doc/html/id683292.html83
-rw-r--r--doc/html/id685080.html63
-rw-r--r--doc/html/id691834.html57
-rw-r--r--doc/html/id696758.html58
-rw-r--r--doc/html/id719223.html60
-rw-r--r--doc/html/id726784.html71
-rw-r--r--doc/html/id766036.html66
-rw-r--r--doc/html/id791859.html90
-rw-r--r--doc/html/id792474.html50
-rw-r--r--doc/html/id795566.html49
-rw-r--r--doc/html/id801451.html51
-rw-r--r--doc/html/id802125.html66
-rw-r--r--doc/html/id802530.html48
-rw-r--r--doc/html/id829552.html166
-rw-r--r--doc/html/id833986.html47
-rw-r--r--doc/html/id837802.html49
-rw-r--r--doc/html/id838605.html60
-rw-r--r--doc/html/id858004.html49
-rw-r--r--doc/html/id865547-bb.html68
-rw-r--r--doc/html/id866049.html76
-rw-r--r--doc/html/id869148.html45
-rw-r--r--doc/html/id869818.html63
-rw-r--r--doc/html/id873294.html61
-rw-r--r--doc/html/id893464-bb.html81
-rw-r--r--doc/html/id895555.html72
-rw-r--r--doc/html/id897675.html62
-rw-r--r--doc/html/id898032.html59
-rw-r--r--doc/html/id901063.html48
-rw-r--r--doc/html/id905079.html50
-rw-r--r--doc/html/id906590-bb.html66
-rw-r--r--doc/html/id928296.html55
-rw-r--r--doc/html/id934351.html48
-rw-r--r--doc/html/id934588.html50
-rw-r--r--doc/html/id935001.html90
-rw-r--r--doc/html/id935311.html72
-rw-r--r--doc/html/id937125.html89
-rw-r--r--doc/html/id961567.html51
-rw-r--r--doc/html/id964834.html49
-rw-r--r--doc/html/id967018.html48
-rw-r--r--doc/html/id967615.html49
-rw-r--r--doc/html/id974575.html65
-rw-r--r--doc/html/id974669.html48
-rw-r--r--doc/html/id974797.html45
-rw-r--r--doc/html/id975607.html63
-rw-r--r--doc/html/id977316.html52
-rw-r--r--doc/html/id977493.html66
-rw-r--r--doc/html/identity_formatter.html52
-rw-r--r--doc/html/iends_with.html67
-rw-r--r--doc/html/iequals.html67
-rw-r--r--doc/html/ierase_all.html62
-rw-r--r--doc/html/ierase_all_copy.html74
-rw-r--r--doc/html/ierase_first.html62
-rw-r--r--doc/html/ierase_first_copy.html74
-rw-r--r--doc/html/ierase_last.html62
-rw-r--r--doc/html/ierase_last_copy.html74
-rw-r--r--doc/html/ierase_nth.html64
-rw-r--r--doc/html/ierase_nth_copy.html77
-rw-r--r--doc/html/ifind_all.html71
-rw-r--r--doc/html/ifind_first.html68
-rw-r--r--doc/html/ifind_last.html68
-rw-r--r--doc/html/ifind_nth.html70
-rw-r--r--doc/html/indeterminate.html54
-rw-r--r--doc/html/indeterminate_name.html75
-rw-r--r--doc/html/index.html85
-rw-r--r--doc/html/int_adapter.html191
-rw-r--r--doc/html/invalid_command_line_style.html63
-rw-r--r--doc/html/invalid_option_value.html69
-rw-r--r--doc/html/invalid_syntax.html70
-rw-r--r--doc/html/ireplace_all.html65
-rw-r--r--doc/html/ireplace_all_copy.html78
-rw-r--r--doc/html/ireplace_first.html65
-rw-r--r--doc/html/ireplace_first_copy.html79
-rw-r--r--doc/html/ireplace_last.html68
-rw-r--r--doc/html/ireplace_last_copy.html79
-rw-r--r--doc/html/ireplace_nth.html67
-rw-r--r--doc/html/ireplace_nth_copy.html81
-rw-r--r--doc/html/is_alnum.html59
-rw-r--r--doc/html/is_alpha.html59
-rw-r--r--doc/html/is_any_of.html59
-rw-r--r--doc/html/is_classified.html62
-rw-r--r--doc/html/is_cntrl.html59
-rw-r--r--doc/html/is_digit.html59
-rw-r--r--doc/html/is_equal.html62
-rw-r--r--doc/html/is_from_range.html61
-rw-r--r--doc/html/is_graph.html59
-rw-r--r--doc/html/is_iequal.html79
-rw-r--r--doc/html/is_lower.html59
-rw-r--r--doc/html/is_print.html59
-rw-r--r--doc/html/is_punct.html59
-rw-r--r--doc/html/is_recursive_wrapper.html61
-rw-r--r--doc/html/is_reference_wrapper.html55
-rw-r--r--doc/html/is_space.html59
-rw-r--r--doc/html/is_upper.html59
-rw-r--r--doc/html/is_xdigit.html59
-rw-r--r--doc/html/iso_extended_format.html59
-rw-r--r--doc/html/iso_format.html57
-rw-r--r--doc/html/iso_format_base.html101
-rw-r--r--doc/html/istarts_with.html67
-rw-r--r--doc/html/lambda.html183
-rw-r--r--doc/html/lambda/extending.html421
-rw-r--r--doc/html/lambda/getting_started.html102
-rw-r--r--doc/html/lambda/le_in_details.html1614
-rw-r--r--doc/html/lambda/s03.html264
-rw-r--r--doc/html/lambda/s07.html314
-rw-r--r--doc/html/lambda/s08.html177
-rw-r--r--doc/html/lambda/s09.html45
-rw-r--r--doc/html/lambda/using_library.html310
-rw-r--r--doc/html/last_finder.html62
-rw-r--r--doc/html/last_kday_of_month.html98
-rw-r--r--doc/html/last_last_rule_spec.html49
-rw-r--r--doc/html/last_value.html75
-rw-r--r--doc/html/libraries.html339
-rw-r--r--doc/html/libraries/s02.html385
-rw-r--r--doc/html/local_adjustor.html77
-rw-r--r--doc/html/local_date_time_base.html214
-rw-r--r--doc/html/lock_error.html67
-rw-r--r--doc/html/make_find_iterator.html50
-rw-r--r--doc/html/make_recursive_variant.html90
-rw-r--r--doc/html/make_split_iterator.html50
-rw-r--r--doc/html/make_variant_over.html69
-rw-r--r--doc/html/microsec_clock.html86
-rw-r--r--doc/html/minutes.html63
-rw-r--r--doc/html/month_formatter.html69
-rw-r--r--doc/html/month_functor.html75
-rw-r--r--doc/html/months_duration.html103
-rw-r--r--doc/html/multiple_occurrences.html64
-rw-r--r--doc/html/multiple_values.html64
-rw-r--r--doc/html/mutex.html131
-rw-r--r--doc/html/next_weekday.html49
-rw-r--r--doc/html/notify.html48
-rw-r--r--doc/html/nth_finder.html65
-rw-r--r--doc/html/nth_kday_of_month.html90
-rw-r--r--doc/html/nth_kday_rule_spec.html49
-rw-r--r--doc/html/nth_last_rule_spec.html49
-rw-r--r--doc/html/null_dst_rules.html75
-rw-r--r--doc/html/option_description.html120
-rw-r--r--doc/html/options_description.html107
-rw-r--r--doc/html/ostream_date_formatter.html64
-rw-r--r--doc/html/ostream_month_formatter.html61
-rw-r--r--doc/html/ostream_time_formatter.html62
-rw-r--r--doc/html/ostream_weekday_formatter.html62
-rw-r--r--doc/html/ostream_ymd_formatter.html65
-rw-r--r--doc/html/parse_command_line.html52
-rw-r--r--doc/html/parse_config_file.html51
-rw-r--r--doc/html/parse_match_result.html80
-rw-r--r--doc/html/partial_date.html111
-rw-r--r--doc/html/partial_date_rule_spec.html49
-rw-r--r--doc/html/period.html126
-rw-r--r--doc/html/period_formatter.html140
-rw-r--r--doc/html/period_parser.html150
-rw-r--r--doc/html/posix_time_system_config.html64
-rw-r--r--doc/html/posix_time_zone.html149
-rw-r--r--doc/html/previous_weekday.html49
-rw-r--r--doc/html/program_options.html131
-rw-r--r--doc/html/program_options/design.html193
-rw-r--r--doc/html/program_options/howto.html390
-rw-r--r--doc/html/program_options/overview.html540
-rw-r--r--doc/html/program_options/reference.html206
-rw-r--r--doc/html/program_options/s06.html88
-rw-r--r--doc/html/program_options/tutorial.html339
-rw-r--r--doc/html/ptime.html79
-rw-r--r--doc/html/range_finder.html64
-rw-r--r--doc/html/read_write_mutex.html153
-rw-r--r--doc/html/recursive_mutex.html132
-rw-r--r--doc/html/recursive_timed_mutex.html144
-rw-r--r--doc/html/recursive_try_mutex.html140
-rw-r--r--doc/html/recursive_wrapper.html196
-rw-r--r--doc/html/ref.html119
-rw-r--r--doc/html/ref/ack.html45
-rw-r--r--doc/html/ref/reference.html50
-rw-r--r--doc/html/reference.html190
-rw-r--r--doc/html/reference_wrapper.html140
-rw-r--r--doc/html/replace_all.html65
-rw-r--r--doc/html/replace_all_copy.html74
-rw-r--r--doc/html/replace_all_regex.html67
-rw-r--r--doc/html/replace_all_regex_copy.html82
-rw-r--r--doc/html/replace_first.html62
-rw-r--r--doc/html/replace_first_copy.html75
-rw-r--r--doc/html/replace_head.html61
-rw-r--r--doc/html/replace_head_copy.html73
-rw-r--r--doc/html/replace_last.html62
-rw-r--r--doc/html/replace_last_copy.html74
-rw-r--r--doc/html/replace_nth.html64
-rw-r--r--doc/html/replace_nth_copy.html77
-rw-r--r--doc/html/replace_range.html63
-rw-r--r--doc/html/replace_range_copy.html75
-rw-r--r--doc/html/replace_regex.html67
-rw-r--r--doc/html/replace_regex_copy.html82
-rw-r--r--doc/html/replace_tail.html61
-rw-r--r--doc/html/replace_tail_copy.html73
-rw-r--r--doc/html/scoped_connection.html109
-rw-r--r--doc/html/second_clock.html77
-rw-r--r--doc/html/seconds.html63
-rw-r--r--doc/html/signal.html76
-rw-r--r--doc/html/signalN.html307
-rw-r--r--doc/html/signals.html122
-rw-r--r--doc/html/signals/reference.html109
-rw-r--r--doc/html/signals/s04.html111
-rw-r--r--doc/html/signals/s05.html209
-rw-r--r--doc/html/signals/s06.html429
-rw-r--r--doc/html/signals/tests.html102
-rw-r--r--doc/html/signals/tutorial.html1102
-rw-r--r--doc/html/simple_exception_policy.html66
-rw-r--r--doc/html/simple_format.html85
-rw-r--r--doc/html/simple_time_rep.html78
-rw-r--r--doc/html/slot.html70
-rw-r--r--doc/html/special_value_from_string.html48
-rw-r--r--doc/html/special_values_formatter.html95
-rw-r--r--doc/html/special_values_parser.html113
-rw-r--r--doc/html/split_iterator.html111
-rw-r--r--doc/html/split_regex.html72
-rw-r--r--doc/html/split_timedate_system.html113
-rw-r--r--doc/html/starts_with.html69
-rw-r--r--doc/html/static_local_time_adjustor.html80
-rw-r--r--doc/html/static_visitor.html59
-rw-r--r--doc/html/string_algo.html177
-rw-r--r--doc/html/string_algo/concept.html229
-rw-r--r--doc/html/string_algo/credits.html53
-rw-r--r--doc/html/string_algo/design.html255
-rw-r--r--doc/html/string_algo/env.html100
-rw-r--r--doc/html/string_algo/quickref.html551
-rw-r--r--doc/html/string_algo/rationale.html78
-rw-r--r--doc/html/string_algo/reference.html763
-rw-r--r--doc/html/string_algo/release_notes.html48
-rw-r--r--doc/html/string_algo/usage.html382
-rw-r--r--doc/html/string_parse_tree.html110
-rw-r--r--doc/html/subsecond_duration.html66
-rw-r--r--doc/html/tail_finder.html59
-rw-r--r--doc/html/thread.html224
-rw-r--r--doc/html/thread/acknowledgements.html91
-rw-r--r--doc/html/thread/build.html96
-rw-r--r--doc/html/thread/configuration.html125
-rw-r--r--doc/html/thread_group.html132
-rw-r--r--doc/html/thread_resource_error.html69
-rw-r--r--doc/html/thread_specific_ptr.html251
-rw-r--r--doc/html/threads.html656
-rw-r--r--doc/html/threads/concepts.html2241
-rw-r--r--doc/html/threads/design.html175
-rw-r--r--doc/html/threads/faq.html292
-rw-r--r--doc/html/threads/implementation_notes.html65
-rw-r--r--doc/html/threads/rationale.html504
-rw-r--r--doc/html/threads/reference.html143
-rw-r--r--doc/html/threads/release_notes.html172
-rw-r--r--doc/html/time_facet.html146
-rw-r--r--doc/html/time_formats.html68
-rw-r--r--doc/html/time_from_ftime.html48
-rw-r--r--doc/html/time_input_facet.html169
-rw-r--r--doc/html/time_itr.html87
-rw-r--r--doc/html/time_label_invalid.html62
-rw-r--r--doc/html/time_resolution_traits.html90
-rw-r--r--doc/html/time_zone.html99
-rw-r--r--doc/html/time_zone_base.html96
-rw-r--r--doc/html/time_zone_names_base.html80
-rw-r--r--doc/html/timed_mutex.html143
-rw-r--r--doc/html/timed_read_write_mutex.html181
-rw-r--r--doc/html/to_lower.html60
-rw-r--r--doc/html/to_lower_copy.html71
-rw-r--r--doc/html/to_upper.html60
-rw-r--r--doc/html/to_upper_copy.html71
-rw-r--r--doc/html/token_finder.html65
-rw-r--r--doc/html/trackable.html113
-rw-r--r--doc/html/tribool.html86
-rw-r--r--doc/html/tribool/reference.html113
-rw-r--r--doc/html/tribool/tests.html80
-rw-r--r--doc/html/tribool/tutorial.html181
-rw-r--r--doc/html/trim.html59
-rw-r--r--doc/html/trim_copy.html65
-rw-r--r--doc/html/trim_copy_if.html70
-rw-r--r--doc/html/trim_if.html59
-rw-r--r--doc/html/trim_left.html59
-rw-r--r--doc/html/trim_left_copy.html65
-rw-r--r--doc/html/trim_left_copy_if.html70
-rw-r--r--doc/html/trim_left_if.html59
-rw-r--r--doc/html/trim_right.html59
-rw-r--r--doc/html/trim_right_copy.html65
-rw-r--r--doc/html/trim_right_copy_if.html70
-rw-r--r--doc/html/trim_right_if.html59
-rw-r--r--doc/html/try_mutex.html139
-rw-r--r--doc/html/try_read_write_mutex.html167
-rw-r--r--doc/html/typed_value.html121
-rw-r--r--doc/html/tz_db_base.html141
-rw-r--r--doc/html/uk_dst_trait.html62
-rw-r--r--doc/html/unknown_option.html64
-rw-r--r--doc/html/untyped_value.html91
-rw-r--r--doc/html/unwrap_recursive_wrapper.html56
-rw-r--r--doc/html/unwrap_reference.html56
-rw-r--r--doc/html/us_dst_rules.html83
-rw-r--r--doc/html/us_dst_trait.html98
-rw-r--r--doc/html/utc_adjustment.html61
-rw-r--r--doc/html/validation_error.html77
-rw-r--r--doc/html/value.html49
-rw-r--r--doc/html/value_semantic.html103
-rw-r--r--doc/html/var_string_to_int.html51
-rw-r--r--doc/html/variable_value.html96
-rw-r--r--doc/html/variables_map.html100
-rw-r--r--doc/html/variant.html226
-rw-r--r--doc/html/variant/design.html333
-rw-r--r--doc/html/variant/misc.html249
-rw-r--r--doc/html/variant/reference.html301
-rw-r--r--doc/html/variant/refs.html129
-rw-r--r--doc/html/variant/tutorial.html534
-rw-r--r--doc/html/visit_each.html76
-rw-r--r--doc/html/visitor_ptr.html60
-rw-r--r--doc/html/visitor_ptr_t.html90
-rw-r--r--doc/html/week_functor.html72
-rw-r--r--doc/html/weeks_duration.html69
-rw-r--r--doc/html/who_s_using_boost_.html87
-rw-r--r--doc/html/who_s_using_boost_/inhouse.html161
-rw-r--r--doc/html/who_s_using_boost_/open.html385
-rw-r--r--doc/html/who_s_using_boost_/shrink.html419
-rw-r--r--doc/html/who_s_using_boost_/submit.html67
-rw-r--r--doc/html/wrapping_int.html84
-rw-r--r--doc/html/wrapping_int2.html91
-rw-r--r--doc/html/wvalue.html49
-rw-r--r--doc/html/xtime.html82
-rw-r--r--doc/html/year_based_generator.html78
-rw-r--r--doc/html/year_functor.html71
-rw-r--r--doc/html/year_month_day_base.html71
-rw-r--r--doc/html/years_duration.html99
-rw-r--r--doc/html/ymd_formatter.html67
693 files changed, 88347 insertions, 164 deletions
diff --git a/doc/html/Assignable.html b/doc/html/Assignable.html
new file mode 100644
index 0000000000..c6cb3991ad
--- /dev/null
+++ b/doc/html/Assignable.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept Assignable</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="concepts/reference.html" title="Concept reference">
+<link rel="next" href="InputIterator.html" title="Concept InputIterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="InputIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="Assignable"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept Assignable</span></h2>
+<p>Assignable</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975234"></a><h2>Description</h2>
+<p>Assignable types must have copy constructors,
+ <code class="computeroutput">operator=</code> for assignment, and the <code class="computeroutput">swap()</code>
+ function defined.</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975253"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a></p></li></ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975266"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">X</span></dt>
+<dd>A type playing the role of assignable-type in the <a href="Assignable.html" title="Concept Assignable">Assignable</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">x</code>, </span><span class="term"><code class="varname">y</code></span>
+</dt>
+<dd>Objects of type X</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975296"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Assignment</p></td>
+<td><p>x = y</p></td>
+<td><p><span class="type">X &amp;</span></p></td>
+<td><p>Require <code class="computeroutput">operator=</code></p></td>
+</tr>
+<tr>
+<td><p>Swap</p></td>
+<td><p>swap(x, y)</p></td>
+<td><p><span class="type">void</span></p></td>
+<td><p>Require <code class="computeroutput">swap()</code> function</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975359"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc"><li><span class="simplelist"><span class="type">int</span></span></li></ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975371"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a></p></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="InputIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/BOOST_ONCE_INIT.html b/doc/html/BOOST_ONCE_INIT.html
new file mode 100644
index 0000000000..34cefbb409
--- /dev/null
+++ b/doc/html/BOOST_ONCE_INIT.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_ONCE_INIT</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id718104" title="Header &lt;boost/thread/once.hpp&gt;">
+<link rel="prev" href="timed_mutex.html" title="Class timed_mutex">
+<link rel="next" href="call_once.html" title="Function call_once">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="timed_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id718104"><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="call_once.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_ONCE_INIT"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_ONCE_INIT</span></h2>
+<p>BOOST_ONCE_INIT &#8212; The call_once function and
+ <code class="computeroutput">once_flag</code> type (statically initialized to
+ <a href="BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a>) can be used to run a
+ routine exactly once. This can be used to initialize data in a
+ <a href="threads.html#threads.glossary.thread-safe">thread-safe</a>
+ manner.</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">BOOST_ONCE_INIT</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1559796"></a><h2>Description</h2>The implementation-defined macro
+ <a href="BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a> is a constant value used to
+ initialize <code class="computeroutput">once_flag</code> instances to indicate that the
+ logically associated routine has not been run yet. See
+ call_once for more details.</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="timed_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id718104"><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="call_once.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/BOOST_TRIBOOL_THIRD_STATE.html b/doc/html/BOOST_TRIBOOL_THIRD_STATE.html
new file mode 100644
index 0000000000..3dcc204d6e
--- /dev/null
+++ b/doc/html/BOOST_TRIBOOL_THIRD_STATE.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_TRIBOOL_THIRD_STATE</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="id1222476.html" title="Function operator!=">
+<link rel="next" href="indeterminate_name.html" title="Class template indeterminate_name">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1222476.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="indeterminate_name.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_TRIBOOL_THIRD_STATE"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_TRIBOOL_THIRD_STATE</span></h2>
+<p>BOOST_TRIBOOL_THIRD_STATE &#8212; Declare a new name for the third state of a tribool. </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">BOOST_TRIBOOL_THIRD_STATE(Name)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1571265"></a><h2>Description</h2>
+<p>Use this macro to declare a new name for the third state of a tribool. This state can have any number of new names (in addition to <code class="computeroutput">indeterminate</code> ), all of which will be equivalent. The new name will be placed in the namespace in which the macro is expanded.</p>
+<p>Example: BOOST_TRIBOOL_THIRD_STATE(true_or_false)</p>
+<p>tribool x(true_or_false); // potentially set x if (true_or_false(x)) { // don't know what x is } </p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1222476.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="indeterminate_name.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/BOOST_VARIANT_ENUM_PARAMS.html b/doc/html/BOOST_VARIANT_ENUM_PARAMS.html
new file mode 100644
index 0000000000..4b76254550
--- /dev/null
+++ b/doc/html/BOOST_VARIANT_ENUM_PARAMS.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_ENUM_PARAMS</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">
+<link rel="next" href="id691834.html" title="Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_VARIANT_LIMIT_TYPES.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id691834.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_VARIANT_ENUM_PARAMS"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_ENUM_PARAMS</span></h2>
+<p>BOOST_VARIANT_ENUM_PARAMS &#8212; <p>Enumerate parameters for use with
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>.</p></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">BOOST_VARIANT_ENUM_PARAMS(param)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1662820"></a><h2>Description</h2>
+<p>Expands to a comma-separated sequence of length
+ <code class="computeroutput"><a href="BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a></code>, where
+ each element in the sequence consists of the concatenation of
+ <span class="emphasis"><em>param</em></span> with its zero-based index into the
+ sequence. That is,
+ <code class="computeroutput">param ## 0, param ## 1, ..., param ## BOOST_VARIANT_LIMIT_TYPES - 1</code>.</p>
+<p><span class="bold"><strong>Rationale</strong></span>: This macro greatly
+ simplifies for the user the process of declaring
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> types
+ in function templates or explicit partial specializations of class
+ templates, as shown in the
+ <a href="variant/tutorial.html#variant.tutorial.preprocessor" title="Preprocessor macros">tutorial</a>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_VARIANT_LIMIT_TYPES.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id691834.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/BOOST_VARIANT_LIMIT_TYPES.html b/doc/html/BOOST_VARIANT_LIMIT_TYPES.html
new file mode 100644
index 0000000000..ed46a5f389
--- /dev/null
+++ b/doc/html/BOOST_VARIANT_LIMIT_TYPES.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_LIMIT_TYPES</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="variant/reference.html" title="Reference">
+<link rel="next" href="BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variant/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="BOOST_VARIANT_ENUM_PARAMS.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_VARIANT_LIMIT_TYPES"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_LIMIT_TYPES</span></h2>
+<p>BOOST_VARIANT_LIMIT_TYPES &#8212; <p>Expands to the length of the
+ template parameter list for
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>.</p></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">BOOST_VARIANT_LIMIT_TYPES</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1662761"></a><h2>Description</h2>
+<p><span class="bold"><strong>Note</strong></span>: Conforming
+ implementations of <code class="computeroutput">variant</code> must allow at least ten
+ template arguments. That is, BOOST_VARIANT_LIMIT_TYPES must be greater
+ or equal to <code class="computeroutput">10</code>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variant/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="BOOST_VARIANT_ENUM_PARAMS.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/BidirectionalIterator.html b/doc/html/BidirectionalIterator.html
new file mode 100644
index 0000000000..401e09459a
--- /dev/null
+++ b/doc/html/BidirectionalIterator.html
@@ -0,0 +1,165 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept BidirectionalIterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="ForwardIterator.html" title="Concept ForwardIterator">
+<link rel="next" href="RandomAccessIterator.html" title="Concept RandomAccessIterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ForwardIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="RandomAccessIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BidirectionalIterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept BidirectionalIterator</span></h2>
+<p>BidirectionalIterator</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976672"></a><h2>Description</h2>
+<p>A bidirectional iterator is an iterator that can read through a sequence
+ of values. It can move in either direction through the sequence, and can
+ be either mutable (data pointed to by it can be changed) or not mutable.</p>
+<p>An iterator represents a position in a sequence. Therefore, the
+ iterator can point into the sequence (returning a value when dereferenced
+ and being incrementable), or be off-the-end (and not dereferenceable or
+ incrementable).</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976688"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="ForwardIterator.html" title="Concept ForwardIterator">ForwardIterator</a></p></li></ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976700"></a><h2>Associated types</h2>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>value_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::value_type</pre>
+<p>The value type of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>category</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::iterator_category</pre>
+<p>The category of the iterator</p>
+</li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976740"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Iter</span></dt>
+<dd>A type playing the role of iterator-type in the <a href="BidirectionalIterator.html" title="Concept BidirectionalIterator">BidirectionalIterator</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">i</code>, </span><span class="term"><code class="varname">j</code></span>
+</dt>
+<dd>Objects of type Iter</dd>
+<dt><span class="term"><code class="varname">x</code></span></dt>
+<dd>Object of type value_type</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976778"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Category tag</span></dt>
+<dd><p><span class="type">category</span> must be
+ derived from <span class="type">std::bidirectional_iterator_tag</span>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976797"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Precondition</th>
+<th>Semantics</th>
+<th>Postcondition</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Predecrement</p></td>
+<td><p>--i</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end) and some dereferenceable iterator <code class="computeroutput">j</code> exists
+ such that <code class="computeroutput">i == ++j</code></p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Postdecrement</p></td>
+<td><p>i--</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Same as for predecrement</p></td>
+<td><p>Equivalent to <code class="computeroutput">{Iter j = i; --i; return j;}</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976889"></a><h2>Complexity</h2>
+<p>
+ All iterator operations must take amortized constant time.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976896"></a><h2>Invariants</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Predecrement must return object</span></dt>
+<dd><p><code class="computeroutput">&amp;i = &amp;(--i)</code></p></dd>
+<dt><span class="term">Unique path through sequence</span></dt>
+<dd><p><code class="computeroutput">i == j</code> implies <code class="computeroutput">--i == --j</code></p></dd>
+<dt><span class="term">Increment and decrement are inverses</span></dt>
+<dd><p><code class="computeroutput">++i; --i;</code> and <code class="computeroutput">--i; ++i;</code> must end up with the
+ value of <code class="computeroutput">i</code> unmodified, if <code class="computeroutput">i</code> both of the
+ operations in the pair are valid.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976958"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">T *</span></span></li>
+<li><span class="simplelist"><span class="type">std::list&lt;T&gt;::iterator</span></span></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976979"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="RandomAccessIterator.html" title="Concept RandomAccessIterator">RandomAccessIterator</a></p></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ForwardIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="RandomAccessIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/CopyConstructible.html b/doc/html/CopyConstructible.html
index d5d8885f72..1343f33d0e 100644
--- a/doc/html/CopyConstructible.html
+++ b/doc/html/CopyConstructible.html
@@ -1,10 +1,84 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/CopyConstructible.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/CopyConstructible.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/CopyConstructible.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept CopyConstructible</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="DefaultConstructible.html" title="Concept DefaultConstructible">
+<link rel="next" href="EqualityComparable.html" title="Concept EqualityComparable">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="DefaultConstructible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="EqualityComparable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="CopyConstructible"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept CopyConstructible</span></h2>
+<p>CopyConstructible</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977733"></a><h2>Description</h2>
+<p>Copy constructible types must be able to be constructed from another
+ member of the type.</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977740"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">X</span></dt>
+<dd>A type playing the role of copy-constructible-type in the <a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">x</code>, </span><span class="term"><code class="varname">y</code></span>
+</dt>
+<dd>Objects of type X</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977771"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody><tr>
+<td><p>Copy construction</p></td>
+<td><p>X(x)</p></td>
+<td><p><span class="type">X</span></p></td>
+<td><p>Require copy constructor.</p></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977808"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc"><li><span class="simplelist"><span class="type">int</span></span></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="DefaultConstructible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="EqualityComparable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/DefaultConstructible.html b/doc/html/DefaultConstructible.html
new file mode 100644
index 0000000000..79e512cc5e
--- /dev/null
+++ b/doc/html/DefaultConstructible.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept DefaultConstructible</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="RandomAccessIterator.html" title="Concept RandomAccessIterator">
+<link rel="next" href="CopyConstructible.html" title="Concept CopyConstructible">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="RandomAccessIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="CopyConstructible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="DefaultConstructible"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept DefaultConstructible</span></h2>
+<p>DefaultConstructible</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977635"></a><h2>Description</h2>
+<p>DefaultConstructible objects only need to have a default
+ constructor.</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977642"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">X</span></dt>
+<dd>A type playing the role of default-constructible-type in the <a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a> concept.</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977662"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody><tr>
+<td><p>Construction</p></td>
+<td><p>X()</p></td>
+<td><p><span class="type">X</span></p></td>
+<td><p>Construct an instance of the type with default parameters.</p></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977698"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">int</span></span></li>
+<li><span class="simplelist"><span class="type">std::vector&lt;double&gt;</span></span></li>
+</ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="RandomAccessIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="CopyConstructible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/EqualityComparable.html b/doc/html/EqualityComparable.html
new file mode 100644
index 0000000000..57c8de512e
--- /dev/null
+++ b/doc/html/EqualityComparable.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept EqualityComparable</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="CopyConstructible.html" title="Concept CopyConstructible">
+<link rel="next" href="LessThanComparable.html" title="Concept LessThanComparable">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="CopyConstructible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="LessThanComparable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="EqualityComparable"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept EqualityComparable</span></h2>
+<p>EqualityComparable</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977835"></a><h2>Description</h2>
+<p>Equality Comparable types must have <code class="computeroutput">==</code> and
+ <code class="computeroutput">!=</code> operators.</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977852"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">X</span></dt>
+<dd>A type playing the role of comparable-type in the <a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">x</code>, </span><span class="term"><code class="varname">y</code></span>
+</dt>
+<dd>Objects of type X</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977883"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Equality test</p></td>
+<td><p>x == y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Inequality test</p></td>
+<td><p>x != y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977929"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">int</span></span></li>
+<li><span class="simplelist"><span class="type">std::vector&lt;int&gt;</span></span></li>
+</ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="CopyConstructible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="LessThanComparable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/FinderConcept.html b/doc/html/FinderConcept.html
new file mode 100644
index 0000000000..e5a1fb087a
--- /dev/null
+++ b/doc/html/FinderConcept.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template FinderConcept</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907172" title="Header &lt;boost/algorithm/string/concept.hpp&gt;">
+<link rel="prev" href="is_iequal.html" title="Struct is_iequal">
+<link rel="next" href="FormatterConcept.html" title="Struct template FormatterConcept">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_iequal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907172"><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="FormatterConcept.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="FinderConcept"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template FinderConcept</span></h2>
+<p>boost::algorithm::FinderConcept &#8212; Finder concept. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> IteratorT&gt;
+<span class="bold"><strong>struct</strong></span> FinderConcept {
+
+  <span class="emphasis"><em>// <a href="FinderConcept.html#id1000634-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="FinderConcept.html#id1069871-bb">constraints</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1315117"></a><h2>Description</h2>
+<p>Defines the Finder concept. Finder is a functor which selects an arbitrary part of a string. Search is performed on the range specified by starting and ending iterators.</p>
+<p>Result of the find operation must be convertible to iterator_range. </p>
+<div class="refsect2" lang="en">
+<a name="id1315129"></a><h3>
+<a name="id1000634-bb"></a><code class="computeroutput">FinderConcept</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1069871-bb"></a>constraints() ;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_iequal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907172"><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="FormatterConcept.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/FormatterConcept.html b/doc/html/FormatterConcept.html
new file mode 100644
index 0000000000..2b2f5f74b1
--- /dev/null
+++ b/doc/html/FormatterConcept.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template FormatterConcept</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907172" title="Header &lt;boost/algorithm/string/concept.hpp&gt;">
+<link rel="prev" href="FinderConcept.html" title="Struct template FinderConcept">
+<link rel="next" href="id1178955.html" title="Type token_compress_mode_type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="FinderConcept.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907172"><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="id1178955.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="FormatterConcept"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template FormatterConcept</span></h2>
+<p>boost::algorithm::FormatterConcept &#8212; Formatter concept. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FormatterT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> IteratorT&gt;
+<span class="bold"><strong>struct</strong></span> FormatterConcept {
+
+  <span class="emphasis"><em>// <a href="FormatterConcept.html#id801912-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="FormatterConcept.html#id768658-bb">constraints</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1315246"></a><h2>Description</h2>
+<p>Defines the Formatter concept. Formatter is a functor, which takes a result from a finder operation and transforms it in a specific way.</p>
+<p>Result must be a container supported by container_traits, or a reference to it. </p>
+<div class="refsect2" lang="en">
+<a name="id1315257"></a><h3>
+<a name="id801912-bb"></a><code class="computeroutput">FormatterConcept</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id768658-bb"></a>constraints() ;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="FinderConcept.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907172"><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="id1178955.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ForwardIterator.html b/doc/html/ForwardIterator.html
new file mode 100644
index 0000000000..f70a011c85
--- /dev/null
+++ b/doc/html/ForwardIterator.html
@@ -0,0 +1,182 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept ForwardIterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="OutputIterator.html" title="Concept OutputIterator">
+<link rel="next" href="BidirectionalIterator.html" title="Concept BidirectionalIterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="OutputIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="BidirectionalIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ForwardIterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept ForwardIterator</span></h2>
+<p>ForwardIterator</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976320"></a><h2>Description</h2>
+<p>A forward iterator is an iterator that can read through a sequence of
+ values. It is multi-pass (old values of the iterator can be
+ re-used), and can be either mutable (data pointed to by it can be
+ changed) or not mutable.</p>
+<p>An iterator represents a position in a sequence. Therefore, the
+ iterator can point into the sequence (returning a value when dereferenced
+ and being incrementable), or be off-the-end (and not dereferenceable or
+ incrementable).</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976335"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="InputIterator.html" title="Concept InputIterator">InputIterator</a></p></li>
+<li><p><a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a></p></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976355"></a><h2>Associated types</h2>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>value_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::value_type</pre>
+<p>The value type of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>category</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::iterator_category</pre>
+<p>The category of the iterator</p>
+</li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976395"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Iter</span></dt>
+<dd>A type playing the role of iterator-type in the <a href="ForwardIterator.html" title="Concept ForwardIterator">ForwardIterator</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">i</code>, </span><span class="term"><code class="varname">j</code></span>
+</dt>
+<dd>Objects of type Iter</dd>
+<dt><span class="term"><code class="varname">x</code></span></dt>
+<dd>Object of type value_type</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976433"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Category tag</span></dt>
+<dd><p><span class="type">category</span> must be
+ derived from <span class="type">std::forward_iterator_tag</span>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976452"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Precondition</th>
+<th>Semantics</th>
+<th>Postcondition</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Dereference</p></td>
+<td><p>*i</p></td>
+<td><p><span class="type">const-if-not-mutable value_type &amp;</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Member access</p></td>
+<td><p>i-&gt;{member-name} (return type is pointer-to-object type)</p></td>
+<td><p><span class="type">const-if-not-mutable value_type *</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Preincrement</p></td>
+<td><p>++i</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Postincrement</p></td>
+<td><p>i++</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td><p>Equivalent to <code class="computeroutput">{Iter j = i; ++i; return j;}</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976586"></a><h2>Complexity</h2>
+<p>
+ All iterator operations must take amortized constant time.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976593"></a><h2>Invariants</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Predecrement must return object</span></dt>
+<dd><p><code class="computeroutput">&amp;i = &amp;(++i)</code></p></dd>
+<dt><span class="term">Unique path through sequence</span></dt>
+<dd><p><code class="computeroutput">i == j</code> implies <code class="computeroutput">++i == ++j</code></p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976624"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">T *</span></span></li>
+<li><span class="simplelist"><span class="type">std::hash_set&lt;T&gt;::iterator</span></span></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976644"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="BidirectionalIterator.html" title="Concept BidirectionalIterator">BidirectionalIterator</a></p></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="OutputIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="BidirectionalIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/InputIterator.html b/doc/html/InputIterator.html
new file mode 100644
index 0000000000..305a25c194
--- /dev/null
+++ b/doc/html/InputIterator.html
@@ -0,0 +1,190 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept InputIterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="Assignable.html" title="Concept Assignable">
+<link rel="next" href="OutputIterator.html" title="Concept OutputIterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="Assignable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="OutputIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="InputIterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept InputIterator</span></h2>
+<p>InputIterator</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975397"></a><h2>Description</h2>
+<p>An input iterator is an iterator that can read through a sequence of
+ values. It is single-pass (old values of the iterator cannot be
+ re-used), and read-only.</p>
+<p>An input iterator represents a position in a sequence. Therefore, the
+ iterator can point into the sequence (returning a value when dereferenced
+ and being incrementable), or be off-the-end (and not dereferenceable or
+ incrementable).</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975412"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="Assignable.html" title="Concept Assignable">Assignable</a></p></li>
+<li><p><a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a></p></li>
+<li><p><a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a></p></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975441"></a><h2>Associated types</h2>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>value_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::value_type</pre>
+<p>The value type of the iterator (not necessarily what
+ <code class="computeroutput">*i</code> returns)</p>
+</li>
+<li>
+<p><span class="bold"><strong>difference_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::difference_type</pre>
+<p>The difference type of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>category</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::iterator_category</pre>
+<p>The category of the iterator</p>
+</li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975504"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Iter</span></dt>
+<dd>A type playing the role of iterator-type in the <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">i</code>, </span><span class="term"><code class="varname">j</code></span>
+</dt>
+<dd>Objects of type Iter</dd>
+<dt><span class="term"><code class="varname">x</code></span></dt>
+<dd>Object of type value_type</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975542"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Category tag</span></dt>
+<dd><p><span class="type">category</span> must be
+ derived from <span class="type">std::input_iterator_tag</span>, a model of <a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a>, and a model of <a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a>.
+ </p></dd>
+<dt><span class="term">Value type copy constructibility</span></dt>
+<dd><p><span class="type">value_type</span> must be
+ a model of <a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a>.
+ </p></dd>
+<dt><span class="term">Difference type properties</span></dt>
+<dd><p><span class="type">difference_type</span> must be
+ a model of <a href="SignedInteger.html" title="Concept SignedInteger">SignedInteger</a>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975612"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Precondition</th>
+<th>Semantics</th>
+<th>Postcondition</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Dereference</p></td>
+<td><p>*i</p></td>
+<td><p>Convertible to <span class="type">value_type</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Preincrement</p></td>
+<td><p>++i</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Postincrement</p></td>
+<td><p>i++</p></td>
+<td><p></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td><p>Equivalent to <code class="computeroutput">(void)(++i)</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+<tr>
+<td><p>Postincrement and dereference</p></td>
+<td><p>*i++</p></td>
+<td><p>Convertible to <span class="type">value_type</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td><p>Equivalent to <code class="computeroutput">{value_type t = *i; ++i; return t;}</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975758"></a><h2>Complexity</h2>
+<p>
+ All iterator operations must take amortized constant time.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975765"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc"><li><span class="simplelist"><span class="type">std::istream_iterator</span></span></li></ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975777"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a></p></li>
+<li><p><a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a></p></li>
+<li><p><a href="ForwardIterator.html" title="Concept ForwardIterator">ForwardIterator</a></p></li>
+<li><p><a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a></p></li>
+</ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="Assignable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="OutputIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/LessThanComparable.html b/doc/html/LessThanComparable.html
new file mode 100644
index 0000000000..081a0e8dc3
--- /dev/null
+++ b/doc/html/LessThanComparable.html
@@ -0,0 +1,105 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept LessThanComparable</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="EqualityComparable.html" title="Concept EqualityComparable">
+<link rel="next" href="SignedInteger.html" title="Concept SignedInteger">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="EqualityComparable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="SignedInteger.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="LessThanComparable"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept LessThanComparable</span></h2>
+<p>LessThanComparable</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977964"></a><h2>Description</h2>
+<p>LessThanComparable types must have <code class="computeroutput">&lt;</code>,
+ <code class="computeroutput">&gt;</code>, <code class="computeroutput">&lt;=</code>, and <code class="computeroutput">&gt;=</code>
+ operators.</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977993"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">X</span></dt>
+<dd>A type playing the role of comparable-type in the <a href="LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">x</code>, </span><span class="term"><code class="varname">y</code></span>
+</dt>
+<dd>Objects of type X</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978024"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Less than</p></td>
+<td><p>x &lt; y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+<td><p>Determine if one value is less than another.</p></td>
+</tr>
+<tr>
+<td><p>Less than or equal</p></td>
+<td><p>x &lt;= y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+<td><p>Determine if one value is less than or equal to another.</p></td>
+</tr>
+<tr>
+<td><p>Greater than</p></td>
+<td><p>x &gt; y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+<td><p>Determine if one value is greater than another.</p></td>
+</tr>
+<tr>
+<td><p>Greater than or equal to</p></td>
+<td><p>x &gt;= y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+<td><p>Determine if one value is greater than or equal to another.</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978117"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc"><li><span class="simplelist"><span class="type">int</span></span></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="EqualityComparable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="SignedInteger.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/OutputIterator.html b/doc/html/OutputIterator.html
new file mode 100644
index 0000000000..ef19183c80
--- /dev/null
+++ b/doc/html/OutputIterator.html
@@ -0,0 +1,200 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept OutputIterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="InputIterator.html" title="Concept InputIterator">
+<link rel="next" href="ForwardIterator.html" title="Concept ForwardIterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="InputIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="ForwardIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="OutputIterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept OutputIterator</span></h2>
+<p>OutputIterator</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975829"></a><h2>Description</h2>
+<p>An output iterator is an iterator that can write a sequence of
+ values. It is single-pass (old values of the iterator cannot be
+ re-used), and write-only.</p>
+<p>An output iterator represents a position in a (possibly infinite)
+ sequence. Therefore, the iterator can point into the sequence (returning
+ a value when dereferenced and being incrementable), or be off-the-end
+ (and not dereferenceable or incrementable).</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975844"></a><h2>Associated types</h2>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>value_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::value_type</pre>
+<p>The stated value type of the iterator (should be
+ <code class="computeroutput">void</code> for an output iterator that does not model some other
+ iterator concept).</p>
+</li>
+<li>
+<p><span class="bold"><strong>difference_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::difference_type</pre>
+<p>The difference type of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>category</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::iterator_category</pre>
+<p>The category of the iterator</p>
+</li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975908"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Iter</span></dt>
+<dd>A type playing the role of iterator-type in the <a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> concept.</dd>
+<dt><span class="term">ValueType</span></dt>
+<dd>A type playing the role of value-type in the <a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">i</code>, </span><span class="term"><code class="varname">j</code></span>
+</dt>
+<dd>Objects of type Iter</dd>
+<dt><span class="term"><code class="varname">x</code></span></dt>
+<dd>Object of type ValueType</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id975960"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term"></span></dt>
+<dd><p>The type <span class="type">Iter</span> must be a model of <a href="Assignable.html" title="Concept Assignable">Assignable</a>.</p></dd>
+<dt><span class="term"></span></dt>
+<dd><p>The type <span class="type">ValueType</span> must be a model of <a href="Assignable.html" title="Concept Assignable">Assignable</a>.</p></dd>
+<dt><span class="term"></span></dt>
+<dd><p>The type <span class="type">Iter</span> must be a model of <a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a>.</p></dd>
+<dt><span class="term"></span></dt>
+<dd><p>The type <span class="type">Iter</span> must be a model of
+ <a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>.</p></dd>
+<dt><span class="term">Category tag</span></dt>
+<dd><p><span class="type">category</span> must be
+ derived from <span class="type">std::output_iterator_tag</span>, a model of <a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a>, and a model of <a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a>.
+ </p></dd>
+<dt><span class="term">Difference type properties</span></dt>
+<dd><p><span class="type">difference_type</span> must be
+ a model of <a href="SignedInteger.html" title="Concept SignedInteger">SignedInteger</a>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976078"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Precondition</th>
+<th>Semantics</th>
+<th>Postcondition</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Dereference</p></td>
+<td><p>*i</p></td>
+<td><p></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Dereference and assign</p></td>
+<td><p>*i = x</p></td>
+<td><p></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td><p><code class="computeroutput">*i</code> may not be written to again until it has
+ been incremented.</p></td>
+</tr>
+<tr>
+<td><p>Preincrement</p></td>
+<td><p>++i</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><p>Postincrement</p></td>
+<td><p>i++</p></td>
+<td><p></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td><p>Equivalent to <code class="computeroutput">(void)(++i)</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+<tr>
+<td><p>Postincrement, dereference, and assign</p></td>
+<td><p>*i++ = x</p></td>
+<td><p></p></td>
+<td><p><code class="computeroutput">i</code> is incrementable (not
+ off-the-end)</p></td>
+<td><p>Equivalent to <code class="computeroutput">{*i = t; ++i;}</code></p></td>
+<td><p><code class="computeroutput">i</code> is dereferenceable or
+ off-the-end</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976245"></a><h2>Complexity</h2>
+<p>
+ All iterator operations must take amortized constant time.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976252"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">std::ostream_iterator</span>, <span class="type">...</span></span></li>
+<li><span class="simplelist"><span class="type">std::insert_iterator</span>, <span class="type">...</span></span></li>
+<li><span class="simplelist"><span class="type">std::front_insert_iterator</span>, <span class="type">...</span></span></li>
+<li><span class="simplelist"><span class="type">std::back_insert_iterator</span>, <span class="type">...</span></span></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id976301"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="InputIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="ForwardIterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/RandomAccessIterator.html b/doc/html/RandomAccessIterator.html
new file mode 100644
index 0000000000..fc7a17f5a9
--- /dev/null
+++ b/doc/html/RandomAccessIterator.html
@@ -0,0 +1,230 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept RandomAccessIterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="BidirectionalIterator.html" title="Concept BidirectionalIterator">
+<link rel="next" href="DefaultConstructible.html" title="Concept DefaultConstructible">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BidirectionalIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="DefaultConstructible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="RandomAccessIterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept RandomAccessIterator</span></h2>
+<p>RandomAccessIterator</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977006"></a><h2>Description</h2>
+<p>A random access iterator is an iterator that can read through
+ a sequence of values. It can move in either direction through the
+ sequence (by any amount in constant time), and can be either mutable
+ (data pointed to by it can be changed) or not mutable.</p>
+<p>An iterator represents a position in a sequence. Therefore,
+ the iterator can point into the sequence (returning a value when
+ dereferenced and being incrementable), or be off-the-end (and not
+ dereferenceable or incrementable).</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977022"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="BidirectionalIterator.html" title="Concept BidirectionalIterator">BidirectionalIterator</a></p></li>
+<li><p><a href="LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a></p></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977044"></a><h2>Associated types</h2>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>value_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::value_type</pre>
+<p>The value type of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>category</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::iterator_category</pre>
+<p>The category of the iterator</p>
+</li>
+<li>
+<p><span class="bold"><strong>difference_type</strong></span></p>
+<pre class="literallayout">std::iterator_traits&lt;Iter&gt;::difference_type</pre>
+<p>The difference type of the iterator (measure of the number
+ of steps between two iterators)</p>
+</li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977101"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Iter</span></dt>
+<dd>A type playing the role of iterator-type in the <a href="RandomAccessIterator.html" title="Concept RandomAccessIterator">RandomAccessIterator</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">i</code>, </span><span class="term"><code class="varname">j</code></span>
+</dt>
+<dd>Objects of type Iter</dd>
+<dt><span class="term"><code class="varname">x</code></span></dt>
+<dd>Object of type value_type</dd>
+<dt><span class="term"><code class="varname">n</code></span></dt>
+<dd>Object of type difference_type</dd>
+<dt><span class="term"><code class="varname">int_off</code></span></dt>
+<dd>Object of type int</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977156"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Category tag</span></dt>
+<dd><p><span class="type">category</span> must be
+ derived from <span class="type">std::random_access_iterator_tag</span>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977175"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Motion</p></td>
+<td><p>i += n</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p>Equivalent to applying <code class="computeroutput">i++</code><code class="computeroutput">n</code> times
+ if <code class="computeroutput">n</code> is positive, applying <code class="computeroutput">i--</code><code class="computeroutput">-n</code> times if <code class="computeroutput">n</code> is negative, and to a null
+ operation if <code class="computeroutput">n</code> is zero.</p></td>
+</tr>
+<tr>
+<td><p>Motion (with integer offset)</p></td>
+<td><p>i += int_off</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p>Equivalent to applying <code class="computeroutput">i++</code><code class="computeroutput">n</code> times
+ if <code class="computeroutput">n</code> is positive, applying <code class="computeroutput">i--</code><code class="computeroutput">-n</code> times if <code class="computeroutput">n</code> is negative, and to a null
+ operation if <code class="computeroutput">n</code> is zero.</p></td>
+</tr>
+<tr>
+<td><p>Subtractive motion</p></td>
+<td><p>i -= n</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i+=(-n)</code></p></td>
+</tr>
+<tr>
+<td><p>Subtractive motion (with integer offset)</p></td>
+<td><p>i -= int_off</p></td>
+<td><p><span class="type">Iter &amp;</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i+=(-n)</code></p></td>
+</tr>
+<tr>
+<td><p>Addition</p></td>
+<td><p>i + n</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">{Iter j = i; j += n; return j;}</code></p></td>
+</tr>
+<tr>
+<td><p>Addition with integer</p></td>
+<td><p>i + int_off</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">{Iter j = i; j += n; return j;}</code></p></td>
+</tr>
+<tr>
+<td><p>Addition (count first)</p></td>
+<td><p>n + i</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i + n</code></p></td>
+</tr>
+<tr>
+<td><p>Addition with integer (count first)</p></td>
+<td><p>int_off + i</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i + n</code></p></td>
+</tr>
+<tr>
+<td><p>Subtraction</p></td>
+<td><p>i - n</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i + (-n)</code></p></td>
+</tr>
+<tr>
+<td><p>Subtraction with integer</p></td>
+<td><p>i - int_off</p></td>
+<td><p><span class="type">Iter</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">i + (-n)</code></p></td>
+</tr>
+<tr>
+<td><p>Distance</p></td>
+<td><p>i - j</p></td>
+<td><p><span class="type">difference_type</span></p></td>
+<td><p>The number of times <code class="computeroutput">i</code> must be incremented (or
+ decremented if the result is negative) to reach <code class="computeroutput">j</code>. Not
+ defined if <code class="computeroutput">j</code> is not reachable from
+ <code class="computeroutput">i</code>.</p></td>
+</tr>
+<tr>
+<td><p>Element access</p></td>
+<td><p>i[n]</p></td>
+<td><p><span class="type">const-if-not-mutable value_type &amp;</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">*(i + n)</code></p></td>
+</tr>
+<tr>
+<td><p>Element access with integer index</p></td>
+<td><p>i[int_off]</p></td>
+<td><p><span class="type">const-if-not-mutable value_type &amp;</span></p></td>
+<td><p>Equivalent to <code class="computeroutput">*(i + n)</code></p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977554"></a><h2>Complexity</h2>
+<p>
+ All iterator operations must take amortized constant time.
+ </p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977561"></a><h2>Models</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><span class="simplelist"><span class="type">T *</span></span></li>
+<li><span class="simplelist"><span class="type">std::vector&lt;T&gt;::iterator</span></span></li>
+<li><span class="simplelist"><span class="type">std::vector&lt;T&gt;::const_iterator</span></span></li>
+<li><span class="simplelist"><span class="type">std::deque&lt;T&gt;::iterator</span></span></li>
+<li><span class="simplelist"><span class="type">std::deque&lt;T&gt;::const_iterator</span></span></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id977608"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a></p></li></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BidirectionalIterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="DefaultConstructible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/SignedInteger.html b/doc/html/SignedInteger.html
new file mode 100644
index 0000000000..ea99fe32f6
--- /dev/null
+++ b/doc/html/SignedInteger.html
@@ -0,0 +1,256 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept SignedInteger</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="concepts/reference.html" title="Concept reference">
+<link rel="prev" href="LessThanComparable.html" title="Concept LessThanComparable">
+<link rel="next" href="date_time.html" title="Chapter 3. Boost.Date_Time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="LessThanComparable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="date_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="SignedInteger"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Concept SignedInteger</span></h2>
+<p>SignedInteger</p>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978143"></a><h2>Refinement of</h2>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a></p></li>
+<li><p><a href="Assignable.html" title="Concept Assignable">Assignable</a></p></li>
+<li><p><a href="DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a></p></li>
+<li><p><a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a></p></li>
+<li><p><a href="LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a></p></li>
+</ul></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978189"></a><h2>Notation</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">T</span></dt>
+<dd>A type playing the role of integral-type in the <a href="SignedInteger.html" title="Concept SignedInteger">SignedInteger</a> concept.</dd>
+<dt>
+<span class="term"><code class="varname">x</code>, </span><span class="term"><code class="varname">y</code>, </span><span class="term"><code class="varname">z</code></span>
+</dt>
+<dd>Objects of type T</dd>
+<dt>
+<span class="term"><code class="varname">a</code>, </span><span class="term"><code class="varname">b</code></span>
+</dt>
+<dd>Objects of type int</dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978234"></a><h2>Type expressions</h2>
+<div class="variablelist"><dl>
+<dt><span class="term">Conversion to int</span></dt>
+<dd><p><span class="type">T</span> must be
+ convertible to <span class="type">int</span>.
+ </p></dd>
+</dl></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id978253"></a><h2>Valid expressions</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Expression</th>
+<th>Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>Conversion from int</p></td>
+<td><p>T(a)</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Preincrement</p></td>
+<td><p>++x</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Predecrement</p></td>
+<td><p>--x</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Postincrement</p></td>
+<td><p>x++</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Postdecrement</p></td>
+<td><p>x--</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Sum</p></td>
+<td><p>x + y</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Sum with int</p></td>
+<td><p>x + a</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Sum-assignment</p></td>
+<td><p>x += y</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Sum-assignment with int</p></td>
+<td><p>x += a</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Difference</p></td>
+<td><p>x - y</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Difference with int</p></td>
+<td><p>x - a</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Product</p></td>
+<td><p>x * y</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Product with int</p></td>
+<td><p>x * a</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Product-assignment with int</p></td>
+<td><p>x *= a</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Product with int on left</p></td>
+<td><p>a * x</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Quotient</p></td>
+<td><p>x / y</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Quotient with int</p></td>
+<td><p>x / a</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Right-shift</p></td>
+<td><p>x &gt;&gt; y</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Right-shift with int</p></td>
+<td><p>x &gt;&gt; a</p></td>
+<td><p><span class="type">T</span></p></td>
+</tr>
+<tr>
+<td><p>Right-shift-assignment with int</p></td>
+<td><p>x &gt;&gt;= a</p></td>
+<td><p><span class="type">T &amp;</span></p></td>
+</tr>
+<tr>
+<td><p>Less-than comparison</p></td>
+<td><p>x &lt; y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Less-than comparison with int</p></td>
+<td><p>x &lt; a</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Less-than comparison with size_t</p></td>
+<td><p>x &lt; boost::sample_value &lt; std::size_t &gt;()</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Greater-than comparison</p></td>
+<td><p>x &gt; y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Greater-than comparison with int</p></td>
+<td><p>x &gt; a</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Less-than-or-equal comparison</p></td>
+<td><p>x &lt;= y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Less-than-or-equal comparison with int</p></td>
+<td><p>x &lt;= a</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Greater-than-or-equal comparison</p></td>
+<td><p>x &gt;= y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Greater-than-or-equal comparison with int</p></td>
+<td><p>x &gt;= a</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Greater-than-or-equal comparison with int on left</p></td>
+<td><p>a &gt;= x</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Equality comparison</p></td>
+<td><p>x == y</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+<tr>
+<td><p>Equality comparison with int</p></td>
+<td><p>x == a</p></td>
+<td><p>Convertible to <span class="type">bool</span></p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1" lang="en">
+<a name="id996168"></a><h2>See also</h2>
+<div class="itemizedlist"><ul type="disc"></ul></div>
+</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 © 2001, 2002 Indiana University<br>Copyright © 2000, 2001 University of Notre Dame du Lac<br>Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine<br>Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.<br>Copyright © 1994 Hewlett-Packard Company</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="LessThanComparable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="concepts/reference.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="date_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/abstract_variables_map.html b/doc/html/abstract_variables_map.html
new file mode 100644
index 0000000000..e7043eb94b
--- /dev/null
+++ b/doc/html/abstract_variables_map.html
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class abstract_variables_map</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="bool_switch.html" title="Function bool_switch">
+<link rel="next" href="variable_value.html" title="Class variable_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bool_switch.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="variable_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="abstract_variables_map"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class abstract_variables_map</span></h2>
+<p>boost::program_options::abstract_variables_map &#8212; </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"><strong>class</strong></span> abstract_variables_map {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="abstract_variables_map.html#abstract_variables_mapconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="abstract_variables_map.html#id1115586-bb">abstract_variables_map</a>();
+  <a href="abstract_variables_map.html#id1115588-bb">abstract_variables_map</a>(<span class="bold"><strong>const</strong></span> <a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> *);
+  <a href="abstract_variables_map.html#id1118289-bb">~abstract_variables_map</a>();
+
+  <span class="emphasis"><em>// <a href="abstract_variables_map.html#id1136283-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a href="abstract_variables_map.html#id1136288-bb"><span class="bold"><strong>operator</strong></span>[]</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="abstract_variables_map.html#id1115549-bb">next</a>(<a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> *) ;
+
+  <span class="emphasis"><em>// <a href="abstract_variables_map.html#id1118292-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a href="abstract_variables_map.html#id1118297-bb">get</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1277263"></a><h2>Description</h2>
+<p>Implements string-&gt;string mapping with convenient value casting facilities. </p>
+<div class="refsect2" lang="en">
+<a name="id1277273"></a><h3>
+<a name="abstract_variables_mapconstruct-copy-destruct"></a><code class="computeroutput">abstract_variables_map</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1115586-bb"></a>abstract_variables_map();</pre></li>
+<li><pre class="literallayout"><a name="id1115588-bb"></a>abstract_variables_map(<span class="bold"><strong>const</strong></span> <a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> * next);</pre></li>
+<li><pre class="literallayout"><a name="id1118289-bb"></a>~abstract_variables_map();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1277346"></a><h3>
+<a name="id1136283-bb"></a><code class="computeroutput">abstract_variables_map</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a name="id1136288-bb"></a><span class="bold"><strong>operator</strong></span>[](<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Obtains the value of variable 'name', from *this and possibly from the chain of variable maps.</p>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>if there's no value in *this.</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>if there's next variable map, returns value from it</p></li>
+<li><p>otherwise, returns empty value</p></li>
+</ul></div>
+</li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>if there's defaulted value</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>if there's next varaible map, which has a non-defauled value, return that</p></li>
+<li><p>otherwise, return value from *this</p></li>
+</ul></div>
+</li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li><p>if there's a non-defauled value, returns it. </p></li></ul></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1115549-bb"></a>next(<a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> * next) ;</pre>
+<p>Sets next variable map, which will be used to find variables not found in *this. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1277481"></a><h3>
+<a name="id1118292-bb"></a><code class="computeroutput">abstract_variables_map</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a name="id1118297-bb"></a>get(<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns value of variable 'name' stored in *this, or empty value otherwise. </p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bool_switch.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="variable_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/acst_dst_trait.html b/doc/html/acst_dst_trait.html
new file mode 100644
index 0000000000..fdeac9cfc3
--- /dev/null
+++ b/doc/html/acst_dst_trait.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template acst_dst_trait</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941196" title="Header &lt;boost/date_time/local_timezone_defs.hpp&gt;">
+<link rel="prev" href="uk_dst_trait.html" title="Struct template uk_dst_trait">
+<link rel="next" href="microsec_clock.html" title="Class template microsec_clock">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="uk_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="microsec_clock.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="acst_dst_trait"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template acst_dst_trait</span></h2>
+<p>boost::date_time::acst_dst_trait &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>struct</strong></span> acst_dst_trait {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type                day_of_week_type;  
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                      month_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt; start_rule_functor;
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt; end_rule_functor;  
+
+  <span class="emphasis"><em>// <a href="acst_dst_trait.html#id825387-bb">public static functions</a></em></span>
+  <span class="type">day_of_week_type</span> <a href="acst_dst_trait.html#id825392-bb">start_day</a>() ;
+  <span class="type">month_type</span> <a href="acst_dst_trait.html#id1107969-bb">start_month</a>() ;
+  <span class="type">day_of_week_type</span> <a href="acst_dst_trait.html#id893157-bb">end_day</a>() ;
+  <span class="type">month_type</span> <a href="acst_dst_trait.html#id936154-bb">end_month</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="acst_dst_trait.html#id936167-bb">dst_start_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="acst_dst_trait.html#id832605-bb">dst_end_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="acst_dst_trait.html#id966084-bb">dst_shift_length_minutes</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1110273"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1110276"></a><h3>
+<a name="id825387-bb"></a><code class="computeroutput">acst_dst_trait</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id825392-bb"></a>start_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id1107969-bb"></a>start_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id893157-bb"></a>end_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id936154-bb"></a>end_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id936167-bb"></a>dst_start_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id832605-bb"></a>dst_end_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id966084-bb"></a>dst_shift_length_minutes() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="uk_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="microsec_clock.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/all.html b/doc/html/all.html
new file mode 100644
index 0000000000..f60d51f71e
--- /dev/null
+++ b/doc/html/all.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="iequals.html" title="Function template iequals">
+<link rel="next" href="find_regex.html" title="Function template find_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iequals.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="find_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template all</span></h2>
+<p>boost::algorithm::all &#8212; 'All' predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> all(<span class="bold"><strong>const</strong></span> RangeT &amp; Input, PredicateT Pred);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1327677"></a><h2>Description</h2>
+<p>This predicate holds it all its elements satisfy a given condition, represented by the predicate.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Pred</span></dt>
+<dd><p>A predicate </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iequals.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="find_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/all_date_names_put.html b/doc/html/all_date_names_put.html
new file mode 100644
index 0000000000..bcc4cad300
--- /dev/null
+++ b/doc/html/all_date_names_put.html
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template all_date_names_put</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1072331" title="Header &lt;boost/date_time/date_names_put.hpp&gt;">
+<link rel="prev" href="date_names_put.html" title="Class template date_names_put">
+<link rel="next" href="dst_calculator.html" title="Class template dst_calculator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_names_put.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1072331"><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="dst_calculator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="all_date_names_put"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template all_date_names_put</span></h2>
+<p>boost::date_time::all_date_names_put &#8212; A date name output facet that takes an array of char* to define strings. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Config, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>,
+         <span class="bold"><strong>typename</strong></span> <a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> = std::ostreambuf_iterator&lt;charT&gt; &gt;
+<span class="bold"><strong>class</strong></span> all_date_names_put : <span class="bold"><strong>public</strong></span> boost::date_time::date_names_put&lt; Config, charT, OutputIterator &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> OutputIterator             iter_type;         
+  <span class="bold"><strong>typedef</strong></span> Config::month_enum         month_enum;        
+  <span class="bold"><strong>typedef</strong></span> Config::weekday_enum       weekday_enum;      
+  <span class="bold"><strong>typedef</strong></span> Config::special_value_enum special_value_enum;
+
+  <span class="emphasis"><em>// <a href="all_date_names_put.html#all_date_names_putconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="all_date_names_put.html#id936796-bb">all_date_names_put</a>(<span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>, <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>,
+                     <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>, <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>,
+                     <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>, charT = '-',
+                     ymd_order_spec = ymd_order_iso,
+                     month_format_spec = month_as_short_string);
+
+  <span class="emphasis"><em>// <a href="all_date_names_put.html#id929560-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a href="all_date_names_put.html#id929565-bb">get_short_month_names</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a href="all_date_names_put.html#id1069945-bb">get_long_month_names</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a href="all_date_names_put.html#id801418-bb">get_special_value_names</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a href="all_date_names_put.html#id971730-bb">get_short_weekday_names</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a href="all_date_names_put.html#id822494-bb">get_long_weekday_names</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="all_date_names_put.html#id825192-bb">protected member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id825197-bb">do_put_month_short</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id933199-bb">do_put_month_long</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id1075710-bb">do_put_special_value</a>(iter_type &amp;, special_value_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id1104596-bb">do_put_weekday_short</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id792600-bb">do_put_weekday_long</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id838764-bb">do_month_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="all_date_names_put.html#id1045428-bb">do_day_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> ymd_order_spec</span> <a href="all_date_names_put.html#id970879-bb">do_date_order</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> month_format_spec</span> <a href="all_date_names_put.html#id1077877-bb">do_month_format</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1079994"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1079997"></a><h3>
+<a name="all_date_names_putconstruct-copy-destruct"></a><code class="computeroutput">all_date_names_put</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id936796-bb"></a>all_date_names_put(<span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> month_short_names,
+                   <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> month_long_names,
+                   <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> special_value_names,
+                   <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> weekday_short_names,
+                   <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> weekday_long_names,
+                   charT separator_char = '-',
+                   ymd_order_spec order_spec = ymd_order_iso,
+                   month_format_spec month_format = month_as_short_string);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1080096"></a><h3>
+<a name="id929560-bb"></a><code class="computeroutput">all_date_names_put</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a name="id929565-bb"></a>get_short_month_names() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a name="id1069945-bb"></a>get_long_month_names() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a name="id801418-bb"></a>get_special_value_names() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a name="id971730-bb"></a>get_short_weekday_names() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> *</span> <a name="id822494-bb"></a>get_long_weekday_names() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1080280"></a><h3>
+<a name="id825192-bb"></a><code class="computeroutput">all_date_names_put</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id825197-bb"></a>do_put_month_short(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id933199-bb"></a>do_put_month_long(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+<a name="id1075710-bb"></a>do_put_special_value(iter_type &amp; oitr, special_value_enum sv) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id1104596-bb"></a>do_put_weekday_short(iter_type &amp; oitr, weekday_enum wd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id792600-bb"></a>do_put_weekday_long(iter_type &amp; oitr, weekday_enum wd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id838764-bb"></a>do_month_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id1045428-bb"></a>do_day_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> ymd_order_spec</span> <a name="id970879-bb"></a>do_date_order() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> month_format_spec</span> <a name="id1077877-bb"></a>do_month_format() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_names_put.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1072331"><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="dst_calculator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ambiguous_option.html b/doc/html/ambiguous_option.html
new file mode 100644
index 0000000000..e438edd6d6
--- /dev/null
+++ b/doc/html/ambiguous_option.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class ambiguous_option</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="eof_iterator.html" title="Class template eof_iterator">
+<link rel="next" href="error.html" title="Class error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="eof_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ambiguous_option"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class ambiguous_option</span></h2>
+<p>boost::program_options::ambiguous_option &#8212; </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"><strong>class</strong></span> ambiguous_option : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="ambiguous_option.html#ambiguous_optionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="ambiguous_option.html#id656261-bb">ambiguous_option</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;);
+  <a href="ambiguous_option.html#id864630-bb">~ambiguous_option</a>();
+
+  <span class="emphasis"><em>// <a href="ambiguous_option.html#id822608-bb">public member functions</a></em></span>
+
+  std::vector&lt; std::string &gt; alternatives;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1249951"></a><h2>Description</h2>
+<p>Class thrown when there's ambiguity amoung several possible options. </p>
+<div class="refsect2" lang="en">
+<a name="id1249958"></a><h3>
+<a name="ambiguous_optionconstruct-copy-destruct"></a><code class="computeroutput">ambiguous_option</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id656261-bb"></a>ambiguous_option(<span class="bold"><strong>const</strong></span> std::string &amp; name,
+                 <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; alternatives);</pre></li>
+<li><pre class="literallayout"><a name="id864630-bb"></a>~ambiguous_option();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250018"></a><h3>
+<a name="id822608-bb"></a><code class="computeroutput">ambiguous_option</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="eof_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ambiguous_result.html b/doc/html/ambiguous_result.html
new file mode 100644
index 0000000000..1c9ca64674
--- /dev/null
+++ b/doc/html/ambiguous_result.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct ambiguous_result</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1106303" title="Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;">
+<link rel="prev" href="nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">
+<link rel="next" href="time_label_invalid.html" title="Struct time_label_invalid">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_kday_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="time_label_invalid.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ambiguous_result"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct ambiguous_result</span></h2>
+<p>boost::local_time::ambiguous_result &#8212; simple exception for reporting when STD or DST cannot be determined </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"><strong>struct</strong></span> ambiguous_result {
+  <span class="emphasis"><em>// <a href="ambiguous_result.html#ambiguous_resultconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="ambiguous_result.html#id821403-bb">ambiguous_result</a>(std::string = "");
+
+  <span class="emphasis"><em>// <a href="ambiguous_result.html#id821397-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1181119"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1181122"></a><h3>
+<a name="ambiguous_resultconstruct-copy-destruct"></a><code class="computeroutput">ambiguous_result</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id821403-bb"></a>ambiguous_result(std::string _msg = "");</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1181157"></a><h3>
+<a name="id821397-bb"></a><code class="computeroutput">ambiguous_result</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_kday_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="time_label_invalid.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/any.html b/doc/html/any.html
index 15a93255fc..870a19fc3b 100644
--- a/doc/html/any.html
+++ b/doc/html/any.html
@@ -1,10 +1,106 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 1. Boost.Any</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="libraries/s02.html" title="Libraries Listed by Category">
+<link rel="next" href="any/s02.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.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraries/s02.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="any/s02.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="any"></a>Chapter 1. Boost.Any</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Kevlin</span> <span class="surname">Henney</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2001 Kevlin Henney</p></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="any.html#id969830">Introduction</a></span></dt>
+<dt><span class="section"><a href="any/s02.html">Examples</a></span></dt>
+<dt><span class="section"><a href="any/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="any/reference.html#any.ValueType"><span class="emphasis"><em>ValueType</em></span> requirements</a></span></dt>
+<dt><span class="section"><a href="any/reference.html#header.boost.any.hpp">Header &lt;boost/any.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="any/s04.html">Acknowledgements</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969830"></a>Introduction</h3></div></div></div>
+<p>There are times when a generic (in the sense of
+ <span class="emphasis"><em>general</em></span> as opposed to
+ <span class="emphasis"><em>template-based programming</em></span>) type is needed:
+ variables that are truly variable, accommodating values of many
+ other more specific types rather than C++'s normal strict and
+ static types. We can distinguish three basic kinds of generic
+ type:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Converting types that can hold one of a number of
+ possible value types, e.g. <code class="computeroutput">int</code> and
+ <code class="computeroutput">string</code>, and freely convert between them, for
+ instance interpreting <code class="computeroutput">5</code> as <code class="computeroutput">"5"</code> or
+ vice-versa. Such types are common in scripting and other
+ interpreted
+ languages.
+ <code class="computeroutput">boost::lexical_cast</code>
+ supports such conversion functionality.</p></li>
+<li><p>
+ Discriminated types that contain values of different types but
+ do not attempt conversion between them, i.e. <code class="computeroutput">5</code> is
+ held strictly as an <code class="computeroutput">int</code> and is not implicitly
+ convertible either to <code class="computeroutput">"5"</code> or to
+ <code class="computeroutput">5.0</code>. Their indifference to interpretation but
+ awareness of type effectively makes them safe, generic
+ containers of single values, with no scope for surprises from
+ ambiguous conversions.</p></li>
+<li><p>
+ Indiscriminate types that can refer to anything but are
+ oblivious to the actual underlying type, entrusting all forms
+ of access and interpretation to the programmer. This niche is
+ dominated by <code class="computeroutput">void *</code>, which offers plenty of scope
+ for surprising, undefined behavior.</p></li>
+</ul></div>
+<p>The <code class="computeroutput"><a href="boost/any.html" title="Class any">boost::any</a></code> class
+ (based on the class of the same name described in <a href="http://www.two-sdg.demon.co.uk/curbralan/papers/ValuedConversions.pdf" target="_top">"Valued
+ Conversions"</a> by Kevlin Henney, <span class="emphasis"><em>C++
+ Report</em></span> 12(7), July/August 2000) is a variant value type
+ based on the second category. It supports copying of any value
+ type and safe checked extraction of that value strictly against
+ its type. A similar design, offering more appropriate operators,
+ can be used for a generalized function adaptor,
+ <code class="computeroutput">any_function</code>, a generalized iterator adaptor,
+ <code class="computeroutput">any_iterator</code>, and other object types that need
+ uniform runtime treatment but support only compile-time template
+ parameter conformance.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: March 15, 2003 at 23:12:35 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraries/s02.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="any/s02.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/any/reference.html b/doc/html/any/reference.html
new file mode 100644
index 0000000000..5677559005
--- /dev/null
+++ b/doc/html/any/reference.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../any.html" title="Chapter 1. Boost.Any">
+<link rel="prev" href="s02.html" title="Examples">
+<link rel="next" href="../bad_any_cast.html" title="Class bad_any_cast">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="../bad_any_cast.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="any.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#any.ValueType"><span class="emphasis"><em>ValueType</em></span> requirements</a></span></dt>
+<dt><span class="section"><a href="reference.html#header.boost.any.hpp">Header &lt;boost/any.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="any.ValueType"></a><span class="emphasis"><em>ValueType</em></span> requirements</h4></div></div></div>
+<p>Values are strongly informational objects for which
+ identity is not significant, i.e. the focus is principally on
+ their state content and any behavior organized around
+ that. Another distinguishing feature of values is their
+ granularity: normally fine-grained objects representing simple
+ concepts in the system such as quantities.</p>
+<p>As the emphasis of a value lies in its state not its
+ identity, values can be copied and typically assigned one to
+ another, requiring the explicit or implicit definition of a
+ public copy constructor and public assignment operator. Values
+ typically live within other scopes, i.e. within objects or
+ blocks, rather than on the heap. Values are therefore normally
+ passed around and manipulated directly as variables or through
+ references, but not as pointers that emphasize identity and
+ indirection.</p>
+<p>The specific requirements on value types to be used in an
+ <code class="computeroutput"><a href="../boost/any.html" title="Class any">any</a></code>
+ are:</p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>A <span class="emphasis"><em>ValueType</em></span> is
+ <span class="emphasis"><em>CopyConstructible</em></span> [20.1.3].</li>
+<li>A <span class="emphasis"><em>ValueType</em></span> is
+ optionally <span class="emphasis"><em>Assignable</em></span> [23.1]. The strong
+ exception-safety guarantee is required for all forms of
+ assignment.</li>
+<li>The destructor for a
+ <span class="emphasis"><em>ValueType</em></span> upholds the no-throw
+ exception-safety guarantee.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.any.hpp"></a>Header &lt;<a href="../../../boost/any.hpp" target="_top">boost/any.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../bad_any_cast.html" title="Class bad_any_cast">bad_any_cast</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../boost/any.html" title="Class any">any</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type">ValueType</span> <a href="../any_cast.html" title="Function any_cast">any_cast</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/any.html" title="Class any">any</a> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type"><span class="bold"><strong>const</strong></span> ValueType *</span> <a href="../any_cast.html" title="Function any_cast">any_cast</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/any.html" title="Class any">any</a> *);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type">ValueType *</span> <a href="../any_cast.html" title="Function any_cast">any_cast</a>(<a href="../boost/any.html" title="Class any">any</a> *);
+}</pre>
+</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 © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="../bad_any_cast.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/any/s02.html b/doc/html/any/s02.html
new file mode 100644
index 0000000000..c1cd16b336
--- /dev/null
+++ b/doc/html/any/s02.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Examples</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../any.html" title="Chapter 1. Boost.Any">
+<link rel="prev" href="../any.html" title="Chapter 1. Boost.Any">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../any.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="reference.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="id969978"></a>Examples</h3></div></div></div>
+<p>The following code demonstrates the syntax for using
+ implicit conversions to and copying of any objects:</p>
+<pre class="programlisting">
+#include &lt;list&gt;
+#include &lt;boost/any.hpp&gt;
+
+using <code class="computeroutput"><a href="../any_cast.html" title="Function any_cast">boost::any_cast</a></code>;
+typedef std::list&lt;<code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code>&gt; many;
+
+void append_int(many &amp; values, int value)
+{
+ <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> to_append = value;
+ values.push_back(to_append);
+}
+
+void append_string(many &amp; values, const std::string &amp; value)
+{
+ values.push_back(value);
+}
+
+void append_char_ptr(many &amp; values, const char * value)
+{
+ values.push_back(value);
+}
+
+void append_any(many &amp; values, const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp; value)
+{
+ values.push_back(value);
+}
+
+void append_nothing(many &amp; values)
+{
+ values.push_back(<code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code>());
+}
+</pre>
+<p>The following predicates follow on from the previous
+ definitions and demonstrate the use of queries on any
+ objects:</p>
+<pre class="programlisting">
+bool is_empty(const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp; operand)
+{
+ return operand.<code class="computeroutput"><a href="../boost/any.html#id761592-bb">empty</a></code>();
+}
+
+bool is_int(const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp; operand)
+{
+ return operand.<code class="computeroutput"><a href="../boost/any.html#id761615-bb">type</a></code>() == typeid(int);
+}
+
+bool is_char_ptr(const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp; operand)
+{
+ try
+ {
+ <code class="computeroutput"><a href="../any_cast.html" title="Function any_cast">any_cast</a></code>&lt;const char *&gt;(operand);
+ return true;
+ }
+ catch(const <code class="computeroutput"><a href="../bad_any_cast.html" title="Class bad_any_cast">boost::bad_any_cast</a></code> &amp;)
+ {
+ return false;
+ }
+}
+
+bool is_string(const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp; operand)
+{
+ return <code class="computeroutput"><a href="../any_cast.html" title="Function any_cast">any_cast</a></code>&lt;std::string&gt;(&amp;operand);
+}
+
+void count_all(many &amp; values, std::ostream &amp; out)
+{
+ out &lt;&lt; "#empty == "
+ &lt;&lt; std::count_if(values.begin(), values.end(), is_empty) &lt;&lt; std::endl;
+ out &lt;&lt; "#int == "
+ &lt;&lt; std::count_if(values.begin(), values.end(), is_int) &lt;&lt; std::endl;
+ out &lt;&lt; "#const char * == "
+ &lt;&lt; std::count_if(values.begin(), values.end(), is_char_ptr) &lt;&lt; std::endl;
+ out &lt;&lt; "#string == "
+ &lt;&lt; std::count_if(values.begin(), values.end(), is_string) &lt;&lt; std::endl;
+}
+</pre>
+<p>The following type, patterned after the OMG's Property Service, defines name-value pairs for arbitrary value types:</p>
+<pre class="programlisting">
+struct property
+{
+ property();
+ property(const std::string &amp;, const <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> &amp;);
+
+ std::string name;
+ <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> value;
+};
+
+typedef std::list&lt;property&gt; properties;
+</pre>
+<p>The following base class demonstrates one approach to
+ runtime polymorphism based callbacks that also require arbitrary
+ argument types. The absence of virtual member templates requires
+ that different solutions have different trade-offs in terms of
+ efficiency, safety, and generality. Using a checked variant type
+ offers one approach:</p>
+<pre class="programlisting">
+class consumer
+{
+public:
+ virtual void notify(const <code class="computeroutput"><a href="../boost/any.html" title="Class any">any</a></code> &amp;) = 0;
+ ...
+};
+</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"><small>Copyright © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../any.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/any/s04.html b/doc/html/any/s04.html
new file mode 100644
index 0000000000..9e333244f9
--- /dev/null
+++ b/doc/html/any/s04.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../any.html" title="Chapter 1. Boost.Any">
+<link rel="prev" href="../any_cast.html" title="Function any_cast">
+<link rel="next" href="../array.html" title="Chapter 2. Boost.Array">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../any_cast.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="../array.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="id971646"></a>Acknowledgements</h3></div></div></div>
+<p>Doug Gregor ported the documentation to the BoostBook format.</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 © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../any_cast.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any.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="../array.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/any_cast.html b/doc/html/any_cast.html
new file mode 100644
index 0000000000..42b77606d4
--- /dev/null
+++ b/doc/html/any_cast.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function any_cast</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="any/reference.html#header.boost.any.hpp" title="Header &lt;boost/any.hpp&gt;">
+<link rel="prev" href="boost/any.html" title="Class any">
+<link rel="next" href="any/s04.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/any.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="any/reference.html#header.boost.any.hpp"><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="any/s04.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="any_cast"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function any_cast</span></h2>
+<p>boost::any_cast &#8212; <p>Custom keyword cast for extracting a value
+ of a given type from an
+ <code class="computeroutput"><a href="boost/any.html" title="Class any">any</a></code>.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type">ValueType</span> any_cast(<span class="bold"><strong>const</strong></span> <a href="boost/any.html" title="Class any">any</a> &amp; operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type"><span class="bold"><strong>const</strong></span> ValueType *</span> any_cast(<span class="bold"><strong>const</strong></span> <a href="boost/any.html" title="Class any">any</a> * operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type">ValueType *</span> any_cast(<a href="boost/any.html" title="Class any">any</a> * operand);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id971581"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If passed a pointer, it returns a
+ similarly qualified pointer to the value content if
+ successful, otherwise null is returned. If passed a value or
+ reference, it returns a copy of the value content if
+ successful.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Overloads taking an
+ <code class="computeroutput"><a href="boost/any.html" title="Class any">any</a></code> pointer do not
+ throw; the overload taking an
+ <code class="computeroutput"><a href="boost/any.html" title="Class any">any</a></code> value or reference
+ throws <code class="computeroutput"><a href="bad_any_cast.html" title="Class bad_any_cast">bad_any_cast</a></code> if
+ unsuccessful.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The value/reference version returns a
+ copy because the C++ keyword casts return
+ copies.</p>
+</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 © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/any.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="any/reference.html#header.boost.any.hpp"><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="any/s04.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/apa.html b/doc/html/apa.html
new file mode 100644
index 0000000000..4c05894132
--- /dev/null
+++ b/doc/html/apa.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Appendix A. Rationale for some of the design decisions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="lambda/s09.html" title="Contributors">
+<link rel="next" href="program_options.html" title="Chapter 7. Boost.Program_options">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lambda/s09.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="lambda.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="program_options.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="appendix" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id1246210"></a>Appendix A. Rationale for some of the design decisions</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl><dt><span class="section"><a href="apa.html#lambda.why_weak_arity">
+Lambda functor arity
+</a></span></dt></dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.why_weak_arity"></a>
+Lambda functor arity
+</h4></div></div></div>
+<p>
+The highest placeholder index in a lambda expression determines the arity of the resulting function object.
+However, this is just the minimal arity, as the function object can take arbitrarily many arguments; those not needed are discarded.
+Consider the two bind expressions and their invocations below:
+
+</p>
+<pre class="programlisting">
+bind(g, _3, _3, _3)(x, y, z);
+bind(g, _1, _1, _1)(x, y, z);
+</pre>
+<p>
+
+This first line discards arguments <code class="literal">x</code> and
+<code class="literal">y</code>, and makes the call:
+</p>
+<pre class="programlisting">
+g(z, z, z)
+</pre>
+<p>
+whereas the second line discards arguments <code class="literal">y</code> and
+<code class="literal">z</code>, and calls:
+</p>
+<pre class="programlisting">
+g(x, x, x)
+</pre>
+<p>
+In earlier versions of the library, the latter line resulted in a compile
+time error.
+
+This is basically a tradeoff between safety and flexibility, and the issue
+was extensively discussed during the Boost review period of the library.
+The main points for the <span class="emphasis"><em>strict arity</em></span> checking
+was that it might
+catch a programming error at an earlier time and that a lambda expression that
+explicitly discards its arguments is easy to write:
+</p>
+<pre class="programlisting">
+(_3, bind(g, _1, _1, _1))(x, y, z);
+</pre>
+<p>
+This lambda expression takes three arguments.
+The left-hand argument of the comma operator does nothing, and as comma
+returns the result of evaluating the right-hand argument we end up with
+the call
+<code class="literal">g(x, x, x)</code>
+even with the strict arity.
+</p>
+<p>
+The main points against the strict arity checking were that the need to
+discard arguments is commonplace, and should therefore be straightforward,
+and that strict arity checking does not really buy that much more safety,
+particularly as it is not symmetric.
+For example, if the programmer wanted to write the expression
+<code class="literal">_1 + _2</code> but mistakenly wrote <code class="literal">_1 + 2</code>,
+with strict arity checking, the complier would spot the error.
+However, if the erroneous expression was <code class="literal">1 + _2</code> instead,
+the error would go unnoticed.
+Furthermore, weak arity checking simplifies the implementation a bit.
+Following the recommendation of the Boost review, strict arity checking
+was dropped.
+</p>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lambda/s09.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="lambda.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="program_options.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/apply_visitor.html b/doc/html/apply_visitor.html
new file mode 100644
index 0000000000..5b5f804e68
--- /dev/null
+++ b/doc/html/apply_visitor.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function apply_visitor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id872290" title="Header &lt;boost/variant/apply_visitor.hpp&gt;">
+<link rel="prev" href="apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">
+<link rel="next" href="bad_get.html" title="Class bad_get">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apply_visitor_delayed_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id872290"><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="bad_get.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="apply_visitor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function apply_visitor</span></h2>
+<p>boost::apply_visitor &#8212; <p>Allows compile-time checked type-safe application of the
+ given visitor to the content of the given variant, ensuring that all
+ types are handled by the visitor.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> Variant&gt;
+  <span class="type"><span class="bold"><strong>typename</strong></span> Visitor::result_type</span>
+  apply_visitor(Visitor &amp; visitor, Variant &amp; operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> Variant&gt;
+  <span class="type"><span class="bold"><strong>typename</strong></span> Visitor::result_type</span>
+  apply_visitor(<span class="bold"><strong>const</strong></span> Visitor &amp; visitor, Variant &amp; operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> BinaryVisitor, <span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+  <span class="type"><span class="bold"><strong>typename</strong></span> BinaryVisitor::result_type</span>
+  apply_visitor(BinaryVisitor &amp; visitor, Variant1 &amp; operand1,
+                Variant2 &amp; operand2);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> BinaryVisitor, <span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+  <span class="type"><span class="bold"><strong>typename</strong></span> BinaryVisitor::result_type</span>
+  apply_visitor(<span class="bold"><strong>const</strong></span> BinaryVisitor &amp; visitor, Variant1 &amp; operand1,
+                Variant2 &amp; operand2);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor&gt;
+  <span class="type"><a href="apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">apply_visitor_delayed_t</a>&lt;Visitor&gt;</span> apply_visitor(Visitor &amp; visitor);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1668869"></a><h2>Description</h2>
+<p>The behavior of <code class="computeroutput">apply_visitor</code> is dependent on
+ the number of arguments on which it operates (i.e., other than the
+ visitor). The function behaves as follows:
+
+ <div class="itemizedlist"><ul type="disc">
+<li>Overloads accepting one operand invoke the unary function
+ call operator of the given visitor on the content of the given
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> operand.</li>
+<li>Overloads accepting two operands invoke the binary
+ function call operator of the given visitor on the content of
+ the given <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>
+ operands.</li>
+<li>The overload accepting only a visitor returns a
+ <code class="computeroutput"><a href="apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">generic function object</a></code>
+ that accepts either one or two arguments and invokes
+ <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code> using
+ these arguments and <code class="computeroutput">visitor</code>, thus behaving as
+ specified above. (This behavior is particularly useful, for
+ example, when one needs to operate on each element of a sequence
+ of variant objects using a standard library
+ algorithm.)</li>
+</ul></div></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The overloads acccepting operands return the result of
+ applying the given visitor to the content of the given operands.
+ The overload accepting only a visitor return a function object, thus
+ delaying application of the visitor to any operands.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The given visitor must fulfill the
+ <a href="variant/reference.html#variant.concepts.static-visitor" title="StaticVisitor"><span class="emphasis"><em>StaticVisitor</em></span></a>
+ concept requirements with respect to each of the bounded types of the
+ given <code class="computeroutput">variant</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ The overloads accepting operands throw only if the given
+ visitor throws when applied. The overload accepting only a visitor
+ will not throw. (Note, however, that the returned
+ <a href="apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">function object</a>
+ may throw when invoked.)</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apply_visitor_delayed_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id872290"><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="bad_get.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/apply_visitor_delayed_t.html b/doc/html/apply_visitor_delayed_t.html
new file mode 100644
index 0000000000..e9c92ba4c5
--- /dev/null
+++ b/doc/html/apply_visitor_delayed_t.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template apply_visitor_delayed_t</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id872290" title="Header &lt;boost/variant/apply_visitor.hpp&gt;">
+<link rel="prev" href="unwrap_recursive_wrapper.html" title="Class template unwrap_recursive_wrapper">
+<link rel="next" href="apply_visitor.html" title="Function apply_visitor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="unwrap_recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id872290"><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="apply_visitor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="apply_visitor_delayed_t"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template apply_visitor_delayed_t</span></h2>
+<p>boost::apply_visitor_delayed_t &#8212; Adapts a visitor for use as a function object.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor&gt;
+<span class="bold"><strong>class</strong></span> apply_visitor_delayed_t {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>typename</strong></span> Visitor::result_type result_type;
+
+  <span class="emphasis"><em>// <a href="apply_visitor_delayed_t.html#apply_visitor_delayed_tconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <span class="bold"><strong>explicit</strong></span> <a href="apply_visitor_delayed_t.html#id1208233-bb">apply_visitor_delayed_t</a>(Visitor &amp;);
+
+  <span class="emphasis"><em>// <a href="apply_visitor_delayed_t.html#id1314580-bb">function object interface</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Variant&gt; <span class="type">result_type</span> <a href="apply_visitor_delayed_t.html#id1207026-bb"><span class="bold"><strong>operator</strong></span>()</a>(Variant &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+    <span class="type">result_type</span> <a href="apply_visitor_delayed_t.html#id1251205-bb"><span class="bold"><strong>operator</strong></span>()</a>(Variant1 &amp;, Variant2 &amp;);
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1668496"></a><h2>Description</h2>
+<p>Adapts the function given at construction for use as a
+ function object. This is useful, for example, when one needs to
+ operate on each element of a sequence of variant objects using a
+ standard library algorithm such as
+ <code class="computeroutput">std::for_each</code>.</p>
+<p>See the "visitor-only" form of
+ <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code> for a simple
+ way to create <code class="computeroutput">apply_visitor_delayed_t</code> objects.</p>
+<div class="refsect2" lang="en">
+<a name="id1668530"></a><h3>
+<a name="apply_visitor_delayed_tconstruct-copy-destruct"></a><code class="computeroutput">apply_visitor_delayed_t</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>explicit</strong></span> <a name="id1208233-bb"></a>apply_visitor_delayed_t(Visitor &amp; visitor);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs the function object with the given
+ visitor.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1668581"></a><h3>
+<a name="id1314580-bb"></a><code class="computeroutput">apply_visitor_delayed_t</code> function object interface</h3>
+<div class="orderedlist"><ol type="1"><li>
+<p><a name="id1314583-bb"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Variant&gt; <span class="type">result_type</span> <a name="id1207026-bb"></a><span class="bold"><strong>operator</strong></span>()(Variant &amp; operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+  <span class="type">result_type</span> <a name="id1251205-bb"></a><span class="bold"><strong>operator</strong></span>()(Variant1 &amp; operand1, Variant2 &amp; operand2);</pre>
+<p>Invokes
+ <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code> on the
+ stored visitor using the given operands.</p>
+</li></ol></div>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="unwrap_recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id872290"><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="apply_visitor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/array.html b/doc/html/array.html
index 65c50f8a0a..f99373c270 100644
--- a/doc/html/array.html
+++ b/doc/html/array.html
@@ -1,10 +1,116 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/array.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/array.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/array.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 2. Boost.Array</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="any/s04.html" title="Acknowledgements">
+<link rel="next" href="array/reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="any/s04.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="array/reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="array"></a>Chapter 2. Boost.Array</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Nicolai</span> <span class="surname">Josuttis</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2001-2004 Nicolai M. Josuttis</p></div>
+<div><div class="legalnotice">
+<a name="id971681"></a><p>Permission to copy, use, modify, sell and distribute this
+ software is granted provided this copyright notice appears in
+ all copies. This software is provided "as is" without express or
+ implied warranty, and with no claim as to its suitability for
+ any purpose.</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="array.html#array.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="array/reference.html">Reference</a></span></dt>
+<dd><dl><dt><span class="section"><a href="array/reference.html#header.boost.array.hpp">Header &lt;boost/array.hpp&gt;</a></span></dt></dl></dd>
+<dt><span class="section"><a href="array/rationale.html">Design Rationale</a></span></dt>
+<dt><span class="section"><a href="array/more/info.html">For more information...</a></span></dt>
+<dt><span class="section"><a href="array/ack.html">Acknowledgements</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="array.intro"></a>Introduction</h3></div></div></div>
+<p>The C++ Standard Template Library STL as part of the C++
+ Standard Library provides a framework for processing algorithms on
+ different kind of containers. However, ordinary arrays don't
+ provide the interface of STL containers (although, they provide
+ the iterator interface of STL containers).</p>
+<p>As replacement for ordinary arrays, the STL provides class
+ <code class="computeroutput">std::vector</code>. However,
+ <code class="computeroutput">std::vector&lt;&gt;</code> provides
+ the semantics of dynamic arrays. Thus, it manages data to be able
+ to change the number of elements. This results in some overhead in
+ case only arrays with static size are needed.</p>
+<p>In his book, <span class="emphasis"><em>Generic Programming and the
+ STL</em></span>, Matthew H. Austern introduces a useful wrapper
+ class for ordinary arrays with static size, called
+ <code class="computeroutput">block</code>. It is safer and has no worse performance than
+ ordinary arrays. In <span class="emphasis"><em>The C++ Programming
+ Language</em></span>, 3rd edition, Bjarne Stroustrup introduces a
+ similar class, called <code class="computeroutput">c_array</code>, which I (<a href="http://www.josuttis.com" target="_top">Nicolai Josuttis</a>) present
+ slightly modified in my book <span class="emphasis"><em>The C++ Standard Library -
+ A Tutorial and Reference</em></span>, called
+ <code class="computeroutput">carray</code>. This is the essence of these approaches
+ spiced with many feedback from <a href="http://www.boost.org" target="_top">boost</a>.</p>
+<p>After considering different names, we decided to name this
+ class simply <code class="computeroutput"><a href="boost/array.html" title="Class template array">array</a></code>.</p>
+<p>Note that this class is suggested to be part of the next
+ Technical Report, which will extend the C++ Standard (see
+ <a href="" target="_top">http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</a>).</p>
+<p>Class <code class="computeroutput"><a href="boost/array.html" title="Class template array">array</a></code> fulfills most
+ but not all of the requirements of "reversible containers" (see
+ Section 23.1, [lib.container.requirements] of the C++
+ Standard). The reasons array is not an reversible STL container is
+ because:
+ </p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>No constructors are provided.</li>
+<li>Elements may have an undetermined initial value (see <a href="array/rationale.html" title="Design Rationale">the section called &#8220;Design Rationale&#8221;</a>).</li>
+<li>
+<code class="computeroutput"><a href="boost/array.html#id763420">swap</a></code>() has no constant complexity.</li>
+<li>
+<code class="computeroutput"><a href="boost/array.html#id686133-bb">size</a></code>() is always constant, based on the second template argument of the type.</li>
+<li>The container provides no allocator support.</li>
+</ul></div>
+<p>It doesn't fulfill the requirements of a "sequence" (see Section 23.1.1, [lib.sequence.reqmts] of the C++ Standard), except that:
+ </p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<code class="computeroutput"><a href="boost/array.html#id763241-bb">front</a></code>() and <code class="computeroutput"><a href="boost/array.html#id763273-bb">back</a></code>() are provided.</li>
+<li>
+<code class="computeroutput"><a href="boost/array.html#id685146-bb">operator[]</a></code> and <code class="computeroutput"><a href="boost/array.html#id726524-bb">at</a></code>() are provided.</li>
+</ul></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: January 30, 2004 at 03:51:06 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="any/s04.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="array/reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/array/ack.html b/doc/html/array/ack.html
new file mode 100644
index 0000000000..8653410899
--- /dev/null
+++ b/doc/html/array/ack.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../array.html" title="Chapter 2. Boost.Array">
+<link rel="prev" href="more/info.html" title="For more information...">
+<link rel="next" href="../concepts/reference.html" title="Concept reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="more/info.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="../concepts/reference.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="array.ack"></a>Acknowledgements</h3></div></div></div>
+<p>Doug Gregor ported the documentation to the BoostBook format.</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 © 2001-2004 Nicolai M. Josuttis</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="more/info.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="../concepts/reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/array/more/info.html b/doc/html/array/more/info.html
new file mode 100644
index 0000000000..afe4b1e5ef
--- /dev/null
+++ b/doc/html/array/more/info.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>For more information...</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../array.html" title="Chapter 2. Boost.Array">
+<link rel="prev" href="../rationale.html" title="Design Rationale">
+<link rel="next" href="../ack.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../rationale.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../array.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="../ack.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="array.more.info"></a>For more information...</h3></div></div></div>
+<p>To find more details about using ordinary arrays in C++ and
+ the framework of the STL, see e.g.
+
+ </p>
+<div class="literallayout"><p>The C++ Standard Library - A Tutorial and Reference<br>
+by Nicolai M. Josuttis<br>
+Addison Wesley Longman, 1999<br>
+ISBN 0-201-37926-0</p></div>
+<p><a href="http://www.josuttis.com/" target="_top">Home Page of Nicolai
+ Josuttis</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"><small>Copyright © 2001-2004 Nicolai M. Josuttis</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../rationale.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../array.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="../ack.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/array/rationale.html b/doc/html/array/rationale.html
new file mode 100644
index 0000000000..11f54cfe6b
--- /dev/null
+++ b/doc/html/array/rationale.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Rationale</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../array.html" title="Chapter 2. Boost.Array">
+<link rel="prev" href="../boost/array.html" title="Class template array">
+<link rel="next" href="more/info.html" title="For more information...">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/array.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="more/info.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="array.rationale"></a>Design Rationale</h3></div></div></div>
+<p>There was an important design tradeoff regarding the
+ constructors: We could implement array as an "aggregate" (see
+ Section 8.5.1, [dcl.init.aggr], of the C++ Standard). This would
+ mean:
+ </p>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>An array can be initialized with a
+ brace-enclosing, comma-separated list of initializers for the
+ elements of the container, written in increasing subscript
+ order:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/array.html" title="Class template array">boost::array</a></code>&lt;int,4&gt; a = { { 1, 2, 3 } };</pre>
+<p>Note that if there are fewer elements in the
+ initializer list, then each remaining element gets
+ default-initialized (thus, it has a defined value).</p>
+</li></ul></div>
+<p>However, this approach has its drawbacks: <span class="bold"><strong> passing no initializer list means that the elements
+ have an indetermined initial value</strong></span>, because the rule says
+ that aggregates may have:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>No user-declared constructors.</li>
+<li>No private or protected non-static data members.</li>
+<li>No base classes.</li>
+<li>No virtual functions.</li>
+</ul></div>
+<p>Nevertheless, The current implementation uses this approach.</p>
+<p>Note that for standard conforming compilers it is possible to
+ use fewer braces (according to 8.5.1 (11) of the Standard). That is,
+ you can initialize an array as follows:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/array.html" title="Class template array">boost::array</a></code>&lt;int,4&gt; a = { 1, 2, 3 };
+</pre>
+<p>I'd appreciate any constructive feedback. <span class="bold"><strong>Please note: I don't have time to read all boost
+ mails. Thus, to make sure that feedback arrives to me, please send
+ me a copy of each mail regarding this class.</strong></span></p>
+<p>The code is provided "as is" without expressed or implied
+ warranty.</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 © 2001-2004 Nicolai M. Josuttis</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/array.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="more/info.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/array/reference.html b/doc/html/array/reference.html
new file mode 100644
index 0000000000..28a2d4df4b
--- /dev/null
+++ b/doc/html/array/reference.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../array.html" title="Chapter 2. Boost.Array">
+<link rel="prev" href="../array.html" title="Chapter 2. Boost.Array">
+<link rel="next" href="../boost/array.html" title="Class template array">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="../boost/array.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="array.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#header.boost.array.hpp">Header &lt;boost/array.hpp&gt;</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.array.hpp"></a>Header &lt;<a href="../../../boost/array.hpp" target="_top">boost/array.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt; <span class="bold"><strong>class</strong></span> <a href="../boost/array.html" title="Class template array">array</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../boost/array.html#id763420">swap</a>(<a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763478"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763537"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763586"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763648"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763696"><span class="bold"><strong>operator</strong></span>&lt;=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/array.html#id763744"><span class="bold"><strong>operator</strong></span>&gt;=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+}</pre>
+</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 © 2001-2004 Nicolai M. Josuttis</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array.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="../boost/array.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_adjustment.html b/doc/html/bad_adjustment.html
new file mode 100644
index 0000000000..33a9533a29
--- /dev/null
+++ b/doc/html/bad_adjustment.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_adjustment</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id928390" title="Header &lt;boost/date_time/local_time/posix_time_zone.hpp&gt;">
+<link rel="prev" href="bad_offset.html" title="Struct bad_offset">
+<link rel="next" href="posix_time_zone.html" title="Class posix_time_zone">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_offset.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="posix_time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_adjustment"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_adjustment</span></h2>
+<p>boost::local_time::bad_adjustment &#8212; simple exception for UTC daylight savings adjustment </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"><strong>struct</strong></span> bad_adjustment {
+  <span class="emphasis"><em>// <a href="bad_adjustment.html#bad_adjustmentconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_adjustment.html#id1031899-bb">bad_adjustment</a>(std::string = "");
+
+  <span class="emphasis"><em>// <a href="bad_adjustment.html#id1031894-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1184122"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1184126"></a><h3>
+<a name="bad_adjustmentconstruct-copy-destruct"></a><code class="computeroutput">bad_adjustment</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1031899-bb"></a>bad_adjustment(std::string _msg = "");</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1184159"></a><h3>
+<a name="id1031894-bb"></a><code class="computeroutput">bad_adjustment</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_offset.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="posix_time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_any_cast.html b/doc/html/bad_any_cast.html
new file mode 100644
index 0000000000..752f117840
--- /dev/null
+++ b/doc/html/bad_any_cast.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class bad_any_cast</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="any/reference.html#header.boost.any.hpp" title="Header &lt;boost/any.hpp&gt;">
+<link rel="prev" href="any/reference.html" title="Reference">
+<link rel="next" href="boost/any.html" title="Class any">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="any/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="any/reference.html#header.boost.any.hpp"><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="boost/any.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_any_cast"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class bad_any_cast</span></h2>
+<p>boost::bad_any_cast &#8212; The exception thrown in the event of a failed
+ <code class="computeroutput"><a href="any_cast.html" title="Function any_cast">any_cast</a></code> of an
+ <code class="computeroutput"><a href="boost/any.html" title="Class any">any</a></code> value.</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"><strong>class</strong></span> bad_any_cast : <span class="bold"><strong>public</strong></span> std::bad_cast {
+<span class="bold"><strong>public</strong></span>:
+  <span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="bad_any_cast.html#id728128-bb">what</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id970542"></a><h2>Description</h2>
+<pre class="literallayout"><span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id728128-bb"></a>what() <span class="bold"><strong>const</strong></span>;</pre>
+</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 © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="any/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="any/reference.html#header.boost.any.hpp"><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="boost/any.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_day_of_month.html b/doc/html/bad_day_of_month.html
new file mode 100644
index 0000000000..a03b5b3fc0
--- /dev/null
+++ b/doc/html/bad_day_of_month.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_day_of_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id906477" title="Header &lt;boost/date_time/gregorian/greg_day.hpp&gt;">
+<link rel="prev" href="boost/gregorian/date.html" title="Class date">
+<link rel="next" href="greg_day.html" title="Class greg_day">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/gregorian/date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906477"><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="greg_day.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_day_of_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_day_of_month</span></h2>
+<p>boost::gregorian::bad_day_of_month &#8212; Exception type for gregorian day of month (1..31). </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"><strong>struct</strong></span> bad_day_of_month {
+  <span class="emphasis"><em>// <a href="bad_day_of_month.html#bad_day_of_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_day_of_month.html#id826911-bb">bad_day_of_month</a>();
+  <a href="bad_day_of_month.html#id826913-bb">bad_day_of_month</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="bad_day_of_month.html#id1106058-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1150646"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1150650"></a><h3>
+<a name="bad_day_of_monthconstruct-copy-destruct"></a><code class="computeroutput">bad_day_of_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id826911-bb"></a>bad_day_of_month();</pre></li>
+<li><pre class="literallayout"><a name="id826913-bb"></a>bad_day_of_month(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1150704"></a><h3>
+<a name="id1106058-bb"></a><code class="computeroutput">bad_day_of_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/gregorian/date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906477"><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="greg_day.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_day_of_year.html b/doc/html/bad_day_of_year.html
new file mode 100644
index 0000000000..8185fc3a61
--- /dev/null
+++ b/doc/html/bad_day_of_year.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_day_of_year</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id862957" title="Header &lt;boost/date_time/gregorian/greg_day_of_year.hpp&gt;">
+<link rel="prev" href="greg_day.html" title="Class greg_day">
+<link rel="next" href="greg_durations_config.html" title="Struct greg_durations_config">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_day.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id862957"><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="greg_durations_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_day_of_year"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_day_of_year</span></h2>
+<p>boost::gregorian::bad_day_of_year &#8212; Exception type for day of year (1..366). </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"><strong>struct</strong></span> bad_day_of_year {
+  <span class="emphasis"><em>// <a href="bad_day_of_year.html#bad_day_of_yearconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_day_of_year.html#id1108640-bb">bad_day_of_year</a>();
+
+  <span class="emphasis"><em>// <a href="bad_day_of_year.html#id1108635-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1151132"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1151135"></a><h3>
+<a name="bad_day_of_yearconstruct-copy-destruct"></a><code class="computeroutput">bad_day_of_year</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1108640-bb"></a>bad_day_of_year();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1151168"></a><h3>
+<a name="id1108635-bb"></a><code class="computeroutput">bad_day_of_year</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_day.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id862957"><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="greg_durations_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_field_count.html b/doc/html/bad_field_count.html
new file mode 100644
index 0000000000..dd7f72c616
--- /dev/null
+++ b/doc/html/bad_field_count.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_field_count</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1034888" title="Header &lt;boost/date_time/tz_db_base.hpp&gt;">
+<link rel="prev" href="data_not_accessible.html" title="Struct data_not_accessible">
+<link rel="next" href="tz_db_base.html" title="Class template tz_db_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="data_not_accessible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="tz_db_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_field_count"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_field_count</span></h2>
+<p>boost::date_time::bad_field_count &#8212; </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"><strong>struct</strong></span> bad_field_count {
+  <span class="emphasis"><em>// <a href="bad_field_count.html#bad_field_countconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_field_count.html#id932728-bb">bad_field_count</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="bad_field_count.html#id932723-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1147112"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1147115"></a><h3>
+<a name="bad_field_countconstruct-copy-destruct"></a><code class="computeroutput">bad_field_count</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id932728-bb"></a>bad_field_count(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1147154"></a><h3>
+<a name="id932723-bb"></a><code class="computeroutput">bad_field_count</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="data_not_accessible.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="tz_db_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_function_call.html b/doc/html/bad_function_call.html
new file mode 100644
index 0000000000..ce6d558b44
--- /dev/null
+++ b/doc/html/bad_function_call.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class bad_function_call</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="function/reference.html#header.boost.function.hpp" title="Header &lt;boost/function.hpp&gt;">
+<link rel="prev" href="function/reference.html" title="Reference">
+<link rel="next" href="function_base.html" title="Class function_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="function_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_function_call"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class bad_function_call</span></h2>
+<p>boost::bad_function_call &#8212; An exception type thrown when an instance of a <code class="computeroutput">function</code> object is empty when invoked.</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"><strong>class</strong></span> bad_function_call : <span class="bold"><strong>public</strong></span> std::runtime_error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="bad_function_call.html#bad_function_callconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_function_call.html#id928551-bb">bad_function_call</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1206744"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1206748"></a><h3>
+<a name="bad_function_callconstruct-copy-destruct"></a><code class="computeroutput">bad_function_call</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id928551-bb"></a>bad_function_call();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <code class="computeroutput"><a href="bad_function_call.html" title="Class bad_function_call">bad_function_call</a></code> exception object.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="function_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_get.html b/doc/html/bad_get.html
new file mode 100644
index 0000000000..ff65b9705c
--- /dev/null
+++ b/doc/html/bad_get.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class bad_get</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id894482" title="Header &lt;boost/variant/get.hpp&gt;">
+<link rel="prev" href="apply_visitor.html" title="Function apply_visitor">
+<link rel="next" href="get.html" title="Function get">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apply_visitor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id894482"><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="get.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_get"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class bad_get</span></h2>
+<p>boost::bad_get &#8212; <p>The exception thrown in the event of a failed application of
+ <code class="computeroutput"><a href="get.html" title="Function get">boost::get</a></code> on the given
+ operand value.</p></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"><strong>class</strong></span> bad_get : <span class="bold"><strong>public</strong></span> std::exception {
+<span class="bold"><strong>public</strong></span>:
+  <span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="bad_get.html#id801330-bb">what</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1669332"></a><h2>Description</h2>
+<pre class="literallayout"><span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id801330-bb"></a>what() <span class="bold"><strong>const</strong></span>;</pre>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apply_visitor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id894482"><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="get.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_month.html b/doc/html/bad_month.html
new file mode 100644
index 0000000000..44bdae452d
--- /dev/null
+++ b/doc/html/bad_month.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id871347" title="Header &lt;boost/date_time/gregorian/greg_month.hpp&gt;">
+<link rel="prev" href="id792474.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="greg_month.html" title="Class greg_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id792474.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id871347"><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="greg_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_month</span></h2>
+<p>boost::gregorian::bad_month &#8212; Exception thrown if a greg_month is constructed with a value out of range. </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"><strong>struct</strong></span> bad_month {
+  <span class="emphasis"><em>// <a href="bad_month.html#bad_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_month.html#id692487-bb">bad_month</a>();
+
+  <span class="emphasis"><em>// <a href="bad_month.html#id692482-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1152847"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1152850"></a><h3>
+<a name="bad_monthconstruct-copy-destruct"></a><code class="computeroutput">bad_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id692487-bb"></a>bad_month();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1152883"></a><h3>
+<a name="id692482-bb"></a><code class="computeroutput">bad_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id792474.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id871347"><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="greg_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_offset.html b/doc/html/bad_offset.html
new file mode 100644
index 0000000000..8e75ce9544
--- /dev/null
+++ b/doc/html/bad_offset.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_offset</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id928390" title="Header &lt;boost/date_time/local_time/posix_time_zone.hpp&gt;">
+<link rel="prev" href="local_date_time_base.html" title="Class template local_date_time_base">
+<link rel="next" href="bad_adjustment.html" title="Struct bad_adjustment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_date_time_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="bad_adjustment.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_offset"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_offset</span></h2>
+<p>boost::local_time::bad_offset &#8212; simple exception for UTC and Daylight savings start/end offsets </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"><strong>struct</strong></span> bad_offset {
+  <span class="emphasis"><em>// <a href="bad_offset.html#bad_offsetconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_offset.html#id1001792-bb">bad_offset</a>(std::string = "");
+
+  <span class="emphasis"><em>// <a href="bad_offset.html#id1002747-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1184007"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1184010"></a><h3>
+<a name="bad_offsetconstruct-copy-destruct"></a><code class="computeroutput">bad_offset</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1001792-bb"></a>bad_offset(std::string _msg = "");</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1184044"></a><h3>
+<a name="id1002747-bb"></a><code class="computeroutput">bad_offset</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_date_time_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="bad_adjustment.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_visit.html b/doc/html/bad_visit.html
new file mode 100644
index 0000000000..015700c363
--- /dev/null
+++ b/doc/html/bad_visit.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class bad_visit</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1561653" title="Header &lt;boost/variant/bad_visit.hpp&gt;">
+<link rel="prev" href="get.html" title="Function get">
+<link rel="next" href="static_visitor.html" title="Class template static_visitor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="get.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1561653"><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="static_visitor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_visit"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class bad_visit</span></h2>
+<p>boost::bad_visit &#8212; <p>The exception thrown in the event of a visitor
+ unable to handle the visited value.</p></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"><strong>class</strong></span> bad_visit : <span class="bold"><strong>public</strong></span> std::exception {
+<span class="bold"><strong>public</strong></span>:
+  <span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="bad_visit.html#id1254309-bb">what</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1669929"></a><h2>Description</h2>
+<pre class="literallayout"><span class="bold"><strong>virtual</strong></span> <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id1254309-bb"></a>what() <span class="bold"><strong>const</strong></span>;</pre>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="get.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1561653"><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="static_visitor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_weekday.html b/doc/html/bad_weekday.html
new file mode 100644
index 0000000000..6423bb8eee
--- /dev/null
+++ b/doc/html/bad_weekday.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id973291" title="Header &lt;boost/date_time/gregorian/greg_weekday.hpp&gt;">
+<link rel="prev" href="greg_month.html" title="Class greg_month">
+<link rel="next" href="greg_weekday.html" title="Class greg_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id973291"><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="greg_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_weekday</span></h2>
+<p>boost::gregorian::bad_weekday &#8212; Exception that flags that a weekday number is incorrect. </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"><strong>struct</strong></span> bad_weekday {
+  <span class="emphasis"><em>// <a href="bad_weekday.html#bad_weekdayconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_weekday.html#id977285-bb">bad_weekday</a>();
+
+  <span class="emphasis"><em>// <a href="bad_weekday.html#id977279-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1171466"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1171470"></a><h3>
+<a name="bad_weekdayconstruct-copy-destruct"></a><code class="computeroutput">bad_weekday</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id977285-bb"></a>bad_weekday();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1171503"></a><h3>
+<a name="id977279-bb"></a><code class="computeroutput">bad_weekday</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id973291"><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="greg_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bad_year.html b/doc/html/bad_year.html
new file mode 100644
index 0000000000..694045507e
--- /dev/null
+++ b/doc/html/bad_year.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct bad_year</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866121" title="Header &lt;boost/date_time/gregorian/greg_year.hpp&gt;">
+<link rel="prev" href="greg_weekday.html" title="Class greg_weekday">
+<link rel="next" href="greg_year.html" title="Class greg_year">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866121"><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="greg_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bad_year"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct bad_year</span></h2>
+<p>boost::gregorian::bad_year &#8212; Exception type for gregorian year. </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"><strong>struct</strong></span> bad_year {
+  <span class="emphasis"><em>// <a href="bad_year.html#bad_yearconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="bad_year.html#id933145-bb">bad_year</a>();
+
+  <span class="emphasis"><em>// <a href="bad_year.html#id933140-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1172170"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1172174"></a><h3>
+<a name="bad_yearconstruct-copy-destruct"></a><code class="computeroutput">bad_year</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id933145-bb"></a>bad_year();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1172206"></a><h3>
+<a name="id933140-bb"></a><code class="computeroutput">bad_year</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866121"><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="greg_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/barrier.html b/doc/html/barrier.html
new file mode 100644
index 0000000000..1f8724fd2f
--- /dev/null
+++ b/doc/html/barrier.html
@@ -0,0 +1,117 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class barrier</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id759234" title="Header &lt;boost/thread/barrier.hpp&gt;">
+<link rel="prev" href="threads/reference.html" title="Reference">
+<link rel="next" href="condition.html" title="Class condition">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="threads/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id759234"><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="condition.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="barrier"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class barrier</span></h2>
+<p>boost::barrier &#8212; <p>An object of class <a href="barrier.html" title="Class barrier">barrier</a> is a synchronization
+ primitive used to cause a set of threads to wait until they each perform a
+ certain function or each reach a particular point in their execution.</p></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"><strong>class</strong></span> barrier : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="barrier.html#barrierconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="barrier.html#id1008465-bb">barrier</a>(size_t);
+  <a href="barrier.html#id683382-bb">~barrier</a>();
+
+  <span class="emphasis"><em>// <a href="barrier.html#id942530-bb">waiting</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="barrier.html#id1178178-bb">wait</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1556579"></a><h2>Description</h2>
+<p>When a barrier is created, it is initialized with a thread count N.
+ The first N-1 calls to <code class="computeroutput">wait()</code> will all cause their threads to be blocked.
+ The Nth call to <code class="computeroutput">wait()</code> will allow all of the waiting threads, including
+ the Nth thread, to be placed in a ready state. The Nth call will also "reset"
+ the barrier such that, if an additional N+1th call is made to <code class="computeroutput">wait()</code>,
+ it will be as though this were the first call to <code class="computeroutput">wait()</code>; in other
+ words, the N+1th to 2N-1th calls to <code class="computeroutput">wait()</code> will cause their
+ threads to be blocked, and the 2Nth call to <code class="computeroutput">wait()</code> will allow all of
+ the waiting threads, including the 2Nth thread, to be placed in a ready state
+ and reset the barrier. This functionality allows the same set of N threads to re-use
+ a barrier object to synchronize their execution at multiple points during their
+ execution.</p>
+<p>See <a href="threads.html#threads.glossary" title="Glossary">Glossary</a> for definitions of thread
+ states <a href="threads.html#threads.glossary.thread-state">blocked</a>
+ and <a href="threads.html#threads.glossary.thread-state">ready</a>.
+ Note that "waiting" is a synonym for blocked.</p>
+<div class="refsect2" lang="en">
+<a name="id1556658"></a><h3>
+<a name="barrierconstruct-copy-destruct"></a><code class="computeroutput">barrier</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1008465-bb"></a>barrier(size_t count);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="barrier.html" title="Class barrier">barrier</a> object that
+ will cause <code class="computeroutput">count</code> threads to block on a call to <code class="computeroutput">wait()</code>.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id683382-bb"></a>~barrier();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys <code class="computeroutput">*this</code>. If threads are still executing
+ their <code class="computeroutput">wait()</code> operations, the behavior for these threads is undefined.
+ </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1556757"></a><h3>
+<a name="id942530-bb"></a><code class="computeroutput">barrier</code> waiting</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1178178-bb"></a>wait();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Wait until N threads call <code class="computeroutput">wait()</code>, where
+ N equals the <code class="computeroutput">count</code> provided to the constructor for the
+ barrier object.<p><span class="bold"><strong>Note</strong></span> that if the barrier is
+ destroyed before <code class="computeroutput">wait()</code> can return, the behavior is
+ undefined.</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ Exactly one of the N threads will receive a return value
+ of <code class="computeroutput">true</code>, the others will receive a value of <code class="computeroutput">false</code>.
+ Precisely which thread receives the return value of <code class="computeroutput">true</code> will
+ be implementation-defined. Applications can use this value to designate one
+ thread as a leader that will take a certain action, and the other threads
+ emerging from the barrier can wait for that action to take place.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="threads/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id759234"><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="condition.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/base_time.html b/doc/html/base_time.html
new file mode 100644
index 0000000000..6e549774b3
--- /dev/null
+++ b/doc/html/base_time.html
@@ -0,0 +1,129 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template base_time</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id831553" title="Header &lt;boost/date_time/time.hpp&gt;">
+<link rel="prev" href="gather_weekday_strings.html" title="Function template gather_weekday_strings">
+<link rel="next" href="second_clock.html" title="Class template second_clock">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gather_weekday_strings.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id831553"><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="second_clock.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="base_time"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template base_time</span></h2>
+<p>boost::date_time::base_time &#8212; Representation of a precise moment in time, including the date. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> time_system&gt;
+<span class="bold"><strong>class</strong></span> base_time {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T                               time_type;         
+  <span class="bold"><strong>typedef</strong></span> time_system::time_rep_type      time_rep_type;     
+  <span class="bold"><strong>typedef</strong></span> time_system::date_type          date_type;         
+  <span class="bold"><strong>typedef</strong></span> time_system::date_duration_type date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_system::time_duration_type time_duration_type;
+
+  <span class="emphasis"><em>// <a href="base_time.html#base_timeconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="base_time.html#id796514-bb">base_time</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+            dst_flags = not_dst);
+  <a href="base_time.html#id689610-bb">base_time</a>(special_values);
+  <a href="base_time.html#id689624-bb">base_time</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;);
+
+  <span class="emphasis"><em>// <a href="base_time.html#id724655-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="base_time.html#id724660-bb">date</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_duration_type</span> <a href="base_time.html#id724673-bb">time_of_day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="base_time.html#id724686-bb">zone_name</a>(<span class="bold"><strong>bool</strong></span> = false) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="base_time.html#id828497-bb">zone_abbrev</a>(<span class="bold"><strong>bool</strong></span> = false) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="base_time.html#id828535-bb">zone_as_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id828553-bb">is_not_a_date_time</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id726580-bb">is_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id718630-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id718647-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id795507-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id719180-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="base_time.html#id718223-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_duration_type</span> <a href="base_time.html#id803846-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_type</span> <a href="base_time.html#id803874-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_type</span> <a href="base_time.html#id803902-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_type</span> <a href="base_time.html#id721757-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_type</span> <a href="base_time.html#id796021-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_type</span> <a href="base_time.html#id834553-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_type</span> <a href="base_time.html#id834581-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_type</span> <a href="base_time.html#id834605-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">time_type</span> <a href="base_time.html#id796489-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1117231"></a><h2>Description</h2>
+<p>This class is a skeleton for the interface of a temporal type with a resolution that is higher than a day. It is intended that this class be the base class and that the actual time class be derived using the BN pattern. In this way, the derived class can make decisions such as 'should there be a default constructor' and what should it set its value to, should there be optional constructors say allowing only an time_durations that generate a time from a clock,etc. So, in fact multiple time types can be created for a time_system with different construction policies, and all of them can perform basic operations by only writing a copy constructor. Finally, compiler errors are also shorter.</p>
+<p>The real behavior of the time class is provided by the time_system template parameter. This class must provide all the logic for addition, subtraction, as well as define all the interface types. </p>
+<div class="refsect2" lang="en">
+<a name="id1117242"></a><h3>
+<a name="base_timeconstruct-copy-destruct"></a><code class="computeroutput">base_time</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id796514-bb"></a>base_time(<span class="bold"><strong>const</strong></span> date_type &amp; day, <span class="bold"><strong>const</strong></span> time_duration_type &amp; td,
+          dst_flags dst = not_dst);</pre></li>
+<li><pre class="literallayout"><a name="id689610-bb"></a>base_time(special_values sv);</pre></li>
+<li><pre class="literallayout"><a name="id689624-bb"></a>base_time(<span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1117309"></a><h3>
+<a name="id724655-bb"></a><code class="computeroutput">base_time</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id724660-bb"></a>date() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id724673-bb"></a>time_of_day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id724686-bb"></a>zone_name(<span class="bold"><strong>bool</strong></span> as_offset = false) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Optional bool parameter will return time zone as an offset (ie "+07:00"). Empty string is returned for classes that do not use a time_zone </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id828497-bb"></a>zone_abbrev(<span class="bold"><strong>bool</strong></span> as_offset = false) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Optional bool parameter will return time zone as an offset (ie "+07:00"). Empty string is returned for classes that do not use a time_zone </p>
+</li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id828535-bb"></a>zone_as_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id828553-bb"></a>is_not_a_date_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id726580-bb"></a>is_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id718630-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id718647-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id795507-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id719180-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> time_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id718223-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> time_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id803846-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> time_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id803874-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id803902-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id721757-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id796021-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id834553-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id834581-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id834605-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> time_duration_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id796489-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gather_weekday_strings.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id831553"><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="second_clock.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/basic_command_line_parser.html b/doc/html/basic_command_line_parser.html
new file mode 100644
index 0000000000..79e0d8bf18
--- /dev/null
+++ b/doc/html/basic_command_line_parser.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template basic_command_line_parser</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="id1104430.html" title="Class options_description_easy_init">
+<link rel="next" href="basic_parsed_options.html" title="Class template basic_parsed_options">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1104430.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="basic_parsed_options.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="basic_command_line_parser"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template basic_command_line_parser</span></h2>
+<p>boost::program_options::basic_command_line_parser &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> basic_command_line_parser {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="basic_command_line_parser.html#basic_command_line_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="basic_command_line_parser.html#id1138166-bb">basic_command_line_parser</a>(<span class="bold"><strong>const</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp;);
+  <a href="basic_command_line_parser.html#id1009768-bb">basic_command_line_parser</a>(<span class="bold"><strong>int</strong></span>, charT *);
+
+  <span class="emphasis"><em>// <a href="basic_command_line_parser.html#id762142-bb">public member functions</a></em></span>
+  <span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a href="basic_command_line_parser.html#id762147-bb">options</a>(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp;) ;
+  <span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span>
+  <a href="basic_command_line_parser.html#id663575-bb">positional</a>(<span class="bold"><strong>const</strong></span> <a href="id683292.html" title="Class positional_options_description">positional_options_description</a> &amp;) ;
+  <span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a href="basic_command_line_parser.html#id1031754-bb">style</a>(<span class="bold"><strong>int</strong></span>) ;
+  <span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a href="basic_command_line_parser.html#id1008745-bb">extra_parser</a>(ext_parser) ;
+  <span class="type"><a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span> <a href="basic_command_line_parser.html#id1140268-bb">run</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255000"></a><h2>Description</h2>
+<p>Command line parser.</p>
+<p>The class allows one to specify all the information needed for parsing and to parser the parse the command line. It is primarily needed to emulate named function parameters -- a regular function with 5 parameters will be hard to use and creating overloads with a smaller nuber of parameters will be confusing.</p>
+<p>For the most common case, the function parse_command_line is a better alternative. </p>
+<div class="refsect2" lang="en">
+<a name="id1255017"></a><h3>
+<a name="basic_command_line_parserconstruct-copy-destruct"></a><code class="computeroutput">basic_command_line_parser</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1138166-bb"></a>basic_command_line_parser(<span class="bold"><strong>const</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp; args);</pre>
+<p>Creates a command line parser for the specified arguments list. The 'args' parameter should not include program name. </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1009768-bb"></a>basic_command_line_parser(<span class="bold"><strong>int</strong></span> argc, charT * argv);</pre>
+<p>Creates a command line parser for the specified arguments list. The parameter should be the same as passes to 'main'. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1255088"></a><h3>
+<a name="id762142-bb"></a><code class="computeroutput">basic_command_line_parser</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a name="id762147-bb"></a>options(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; desc) ;</pre>
+<p>Sets options descriptions to use. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span>
+<a name="id663575-bb"></a>positional(<span class="bold"><strong>const</strong></span> <a href="id683292.html" title="Class positional_options_description">positional_options_description</a> &amp; desc) ;</pre>
+<p>Sets positional options description to use. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a name="id1031754-bb"></a>style(<span class="bold"><strong>int</strong></span> ) ;</pre>
+<p>Sets the command line style. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a> &amp;</span> <a name="id1008745-bb"></a>extra_parser(ext_parser ) ;</pre>
+<p>Sets the extra parsers. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span> <a name="id1140268-bb"></a>run() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1104430.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="basic_parsed_options.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/basic_option.html b/doc/html/basic_option.html
new file mode 100644
index 0000000000..6c1f9647ec
--- /dev/null
+++ b/doc/html/basic_option.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template basic_option</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id864937" title="Header &lt;boost/program_options/option.hpp&gt;">
+<link rel="prev" href="validation_error.html" title="Class validation_error">
+<link rel="next" href="duplicate_option_error.html" title="Class duplicate_option_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="validation_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id864937"><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="duplicate_option_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="basic_option"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template basic_option</span></h2>
+<p>boost::program_options::basic_option &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> basic_option {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="basic_option.html#basic_optionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="basic_option.html#id1114467-bb">basic_option</a>();
+  <a href="basic_option.html#id1042744-bb">basic_option</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;);
+
+  <span class="emphasis"><em>// <a href="basic_option.html#id1004663-bb">public member functions</a></em></span>
+
+  std::string string_key;
+  int position_key;
+  std::vector&lt; std::basic_string&lt; charT &gt; &gt; value;
+  bool unregistered;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1252076"></a><h2>Description</h2>
+<p>Option found in input source. Contains a key and a value. The key, in turn, can be a string (name of an option), or an integer (position in input source) -- in case no name is specified. The latter is only possible for command line. The template parameter specifies the type of char used for storing the option's value. </p>
+<div class="refsect2" lang="en">
+<a name="id1252087"></a><h3>
+<a name="basic_optionconstruct-copy-destruct"></a><code class="computeroutput">basic_option</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1114467-bb"></a>basic_option();</pre></li>
+<li><pre class="literallayout"><a name="id1042744-bb"></a>basic_option(<span class="bold"><strong>const</strong></span> std::string &amp; string_key,
+             <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; value);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1252147"></a><h3>
+<a name="id1004663-bb"></a><code class="computeroutput">basic_option</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="validation_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id864937"><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="duplicate_option_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/basic_parsed_options.html b/doc/html/basic_parsed_options.html
new file mode 100644
index 0000000000..e201eec886
--- /dev/null
+++ b/doc/html/basic_parsed_options.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template basic_parsed_options</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="basic_command_line_parser.html" title="Class template basic_command_line_parser">
+<link rel="next" href="id1002952-bb.html" title="Class basic_parsed_options&lt;wchar_t&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_command_line_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1002952-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="basic_parsed_options"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template basic_parsed_options</span></h2>
+<p>boost::program_options::basic_parsed_options &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> basic_parsed_options {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="basic_parsed_options.html#basic_parsed_optionsconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="basic_parsed_options.html#id1081818-bb">basic_parsed_options</a>(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> *);
+
+  <span class="emphasis"><em>// <a href="basic_parsed_options.html#id1081812-bb">public member functions</a></em></span>
+
+  std::vector&lt; <a href="basic_option.html" title="Class template basic_option">basic_option</a>&lt; charT &gt; &gt; options;
+  const <a href="options_description.html" title="Class options_description">options_description</a> * description;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255371"></a><h2>Description</h2>
+<p>Results of parsing an input source. The primary use of this class is passing information from parsers component to value storage component. This class does not makes much sense itself. </p>
+<div class="refsect2" lang="en">
+<a name="id1255380"></a><h3>
+<a name="basic_parsed_optionsconstruct-copy-destruct"></a><code class="computeroutput">basic_parsed_options</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1081818-bb"></a>basic_parsed_options(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> * description);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1255428"></a><h3>
+<a name="id1081812-bb"></a><code class="computeroutput">basic_parsed_options</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1255446"></a><h3>Specializations</h3>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="id1002952-bb.html" title="Class basic_parsed_options&lt;wchar_t&gt;">Class basic_parsed_options&lt;wchar_t&gt;</a></p></li></ul></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_command_line_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1002952-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2.html b/doc/html/bbv2.html
new file mode 100644
index 0000000000..d7194e160a
--- /dev/null
+++ b/doc/html/bbv2.html
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Part III. Boost.Build v2 User Manual</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="index.html" title="The Boost C++ Libraries">
+<link rel="prev" href="boostbook/dtd/rationale.html" title="
+ BoostBook element rationale">
+<link rel="next" href="bbv2/howto.html" title="Chapter 21. How to use this document">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook/dtd/rationale.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="bbv2/howto.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="part" lang="en">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="bbv2"></a>Boost.Build v2 User Manual</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="chapter"><a href="bbv2/howto.html">21. How to use this document</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/installation.html">22. Installation</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/tutorial.html">23. Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/tutorial.html#bbv2.tutorial.hello">Hello, world</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/properties.html">Properties</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/hierarchy.html">Project Hierarchies</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/libs.html">Dependent Targets</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/linkage.html">Static and shared libaries</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/conditions.html">Conditions and alternatives</a></span></dt>
+<dt><span class="section"><a href="bbv2/tutorial/prebuilt.html">Prebuilt targets</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="bbv2/advanced.html">24. User documentation</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/advanced.html#bbv2.advanced.configuration">Configuration</a></span></dt>
+<dt><span class="section"><a href="bbv2/advanced/jamfiles.html">Writing Jamfiles</a></span></dt>
+<dt><span class="section"><a href="bbv2/advanced/build_process.html">The Build Process</a></span></dt>
+<dt><span class="section"><a href="bbv2/advanced/builtins/targets.html">Builtin target types</a></span></dt>
+<dt><span class="section"><a href="bbv2/advanced/builtins/features.html">Builtin features</a></span></dt>
+<dt><span class="section"><a href="bbv2/advanced/differences_to_v1.html">Differences to Boost.Build V1</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="bbv2/extender.html">25. Extender Manual</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/extender.html#bbv2.extender.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="bbv2/extending/targets.html">Target types</a></span></dt>
+<dt><span class="section"><a href="bbv2/extending/tools.html">Tools and generators</a></span></dt>
+<dt><span class="section"><a href="bbv2/extending/features.html">Features</a></span></dt>
+<dt><span class="section"><a href="bbv2/extending/rules.html">Main target rules</a></span></dt>
+<dt><span class="section"><a href="bbv2/extending/toolset_modules.html">Toolset modules</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="bbv2/reference.html">26. Detailed reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/reference.html#bbv2.reference.general">General information</a></span></dt>
+<dt><span class="section"><a href="bbv2/reference/jamfiles.html">Writing Jamfiles</a></span></dt>
+<dt><span class="section"><a href="bbv2/reference/buildprocess.html">Build process</a></span></dt>
+<dt><span class="section"><a href="bbv2/reference/definitions.html">Definitions</a></span></dt>
+<dt><span class="section"><a href="bbv2/reference/generators.html">Generators</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="bbv2/faq.html">27. Frequently Asked Questions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/faq.html#id1708877">
+ I'm getting "Duplicate name of actual target" error. What
+ does it mean?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/envar.html">
+ Accessing environment variables
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/s03.html">
+ How to control properties order?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/s04.html">
+ How to control the library order on Unix?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/external.html">Can I get output of external program as a variable in a Jamfile?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/s06.html">How to get the project-root location?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/s07.html">How to change compilation flags for one file?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/faq/dll-path.html">Why are the <code class="computeroutput">dll-path</code> and
+ <code class="computeroutput">hardcode-dll-paths</code> properties useful?
+ </a></span></dt>
+<dt><span class="section"><a href="bbv2/recipies/site-config.html">Targets in site-config.jam</a></span></dt>
+</dl></dd>
+<dt><span class="appendix"><a href="bbv2/arch.html">B. Boost.Build v2 architecture</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="bbv2/arch.html#bbv2.arch.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="bbv2/arch/build.html">The build layer</a></span></dt>
+<dt><span class="section"><a href="bbv2/arch/tools.html">The tools layer</a></span></dt>
+<dt><span class="section"><a href="bbv2/arch/targets.html">Targets</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: December 29, 2004 at 22:17:38 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook/dtd/rationale.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="bbv2/howto.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced.html b/doc/html/bbv2/advanced.html
new file mode 100644
index 0000000000..2a4fc0c891
--- /dev/null
+++ b/doc/html/bbv2/advanced.html
@@ -0,0 +1,255 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 24. User documentation</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="tutorial/prebuilt.html" title="Prebuilt targets">
+<link rel="next" href="advanced/jamfiles.html" title="Writing Jamfiles">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial/prebuilt.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="advanced/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.advanced"></a>Chapter 24. User documentation</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="advanced.html#bbv2.advanced.configuration">Configuration</a></span></dt>
+<dt><span class="section"><a href="advanced/jamfiles.html">Writing Jamfiles</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/jamfiles.html#bbv2.advanced.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="advanced/jamfiles.html#bbv2.advanced.targets">Main targets</a></span></dt>
+<dt><span class="section"><a href="advanced/jamfiles.html#bbv2.advanced.projects">Projects</a></span></dt>
+<dt><span class="section"><a href="advanced/jamfiles.html#bbv2.advanced.other-rules">Jamfile Utility Rules</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="advanced/build_process.html">The Build Process</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/build_process.html#id1704308">Build request</a></span></dt>
+<dt><span class="section"><a href="advanced/build_process.html#id1704350">Building a main target</a></span></dt>
+<dt><span class="section"><a href="advanced/build_process.html#id1704448">Building a project</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="advanced/builtins/targets.html">Builtin target types</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/builtins/targets.html#id1704505">Programs</a></span></dt>
+<dt><span class="section"><a href="advanced/builtins/targets.html#id1704568">Libraries</a></span></dt>
+<dt><span class="section"><a href="advanced/builtins/targets.html#bbv2.builtins.alias">Alias</a></span></dt>
+<dt><span class="section"><a href="advanced/builtins/targets.html#bbv2.builtins.stage">Installing</a></span></dt>
+<dt><span class="section"><a href="advanced/builtins/targets.html#bbv2.builtins.testing">Testing</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="advanced/builtins/features.html">Builtin features</a></span></dt>
+<dt><span class="section"><a href="advanced/differences_to_v1.html">Differences to Boost.Build V1</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/differences_to_v1.html#bbv2.advanced.differences_to_v1.configuration">Configuration</a></span></dt>
+<dt><span class="section"><a href="advanced/differences_to_v1.html#bbv2.advanced.differences_to_v1.jamfiles">Writing Jamfiles</a></span></dt>
+<dt><span class="section"><a href="advanced/differences_to_v1.html#bbv2.advanced.differences_to_v1.build_process">Build process</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<p>This section will provide the information necessary to create your own
+ projects using Boost.Build. The information provided here is relatively
+ high-level, and <a href="reference.html" title="Chapter 26. Detailed reference">Chapter 26, <i>Detailed reference</i></a> as
+ well as the on-line help system must be used to obtain
+ low-level documentation (see <a href="reference.html#bbv2.reference.init.options.help">???</a>).</p>
+<p>Boost.Build actually consists of two parts - Boost.Jam, a
+ build engine with its own interpreted language, and Boost.Build itself,
+ implemented in Boost.Jam's language. The chain of events when
+ you type <span><strong class="command">bjam</strong></span> on the command line is:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>Boost.Jam tries to find Boost.Build and loads the top-level
+ module. The exact process is described in <a href="reference.html#bbv2.reference.init" title="Initialization">the section called &#8220;Initialization&#8221;</a></p></li>
+<li><p>The top-level module loads user-defined configuration
+ files, <code class="filename">user-config.jam</code> and <code class="filename">site-config.jam</code>, which define
+ available toolsets.</p></li>
+<li><p>The Jamfile in the current directory is read. That in turn
+ might cause reading of further Jamfiles. As a result, a tree of
+ projects is created, with targets inside projects.</p></li>
+<li><p>Finally, using the build request specified on the command line,
+ Boost.Build decides which targets should be built, and how. That
+ information is passed back to Boost.Jam, which takes care of
+ actually running commands.</p></li>
+</ol></div>
+<p>So, to be able to successfully use Boost.Build, you need to know only
+ three things:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="advanced.html#bbv2.advanced.configuration" title="Configuration">
+ How to configure Boost.Build</a></p></li>
+<li><p><a href="advanced/jamfiles.html" title="Writing Jamfiles">
+ How to write Jamfiles</a></p></li>
+<li><p><a href="advanced/build_process.html" title="The Build Process">
+ How the build process works</a></p></li>
+<li><p>Some Basics about the Boost.Jam language. See the
+ <a href="http://www.boost.org/tools/build/jam_src/index.html#jam_fundamentals" target="_top">Boost.Jam</a>
+ and <a href="http://www.boost.org/tools/build/jam_src/jam.html" target="_top">Classic
+ Jam</a> documentation.
+ </p></li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.configuration"></a>Configuration</h2></div></div></div>
+<p>The Boost.Build configuration is specified in the file
+ <code class="filename">user-config.jam</code>. You can edit the one that comes with Boost.Build, or
+
+ create a copy in your home directory and edit that. (See the <a href="reference.html#bbv2.reference.init.config" title="Table 26.1. Search paths for configuration files">reference</a> for the exact search
+ paths.) The primary function of that file is to declare which compilers
+ and other tools are available. The simplest syntax to configure a tool is:
+</p>
+<pre class="programlisting">
+using <em class="replaceable"><code>tool-name</code></em> ;
+</pre>
+<p>
+ The <code class="computeroutput">using</code> rule is given a name of tool, and will make that tool
+ available to Boost.Build. For example, <code class="computeroutput">using gcc ;</code> will make the gcc compiler
+ available.
+ </p>
+<p>
+ Since nothing but a tool name is specified, Boost.Build will
+ pick some default settings. For example, it will use the
+ <span><strong class="command">gcc</strong></span> executable found in the
+ <code class="envar">PATH</code>, or look in some known installation
+ locations. In most cases, this strategy works automatically. In
+ case you have several versions of a compiler, it's installed in
+ some unusual location, or you need to tweak its configuration,
+ you'll need to pass additional parameters to the
+ <code class="computeroutput">using</code> rule. The parameters to
+ <code class="computeroutput">using</code> can be different for each
+ tool. You can obtain specific documentation for any tool's
+ configuration parameters by invoking
+</p>
+<pre class="programlisting">
+bjam --help <em class="replaceable"><code>tool-name</code></em>.init
+</pre>
+<p>
+ That said, for all the compiler toolsets Boost.Build supports
+ out-of-the-box, the list of parameters to
+ <code class="computeroutput">using</code> is the same: <em class="parameter"><code>toolset-name</code></em>, <em class="parameter"><code>version</code></em>, <em class="parameter"><code>invocation-command</code></em>, and <em class="parameter"><code>options</code></em>.
+ </p>
+<p>The <em class="parameter"><code>version</code></em>
+ parameter identifies the toolset version, in case you have
+ several installed. It can have any form you like, but
+ it's recommended that you use a numeric identifier like
+ <code class="literal">7.1</code>.
+ </p>
+<p>
+ The <em class="parameter"><code>invocation-command</code></em>
+ parameter is the command that must be executed to run the
+ compiler. This parameter can usually be omitted if the compiler
+ executable
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>has its &#8220;usual
+ name&#8221; and is in the <code class="envar">PATH</code>,
+ or</p></li>
+<li><p>was installed in a standard
+ &#8220;installation directory&#8221;,
+ or</p></li>
+<li><p>can be found through a global mechanism like the
+ Windows registry.</p></li>
+</ul></div>
+<p>
+
+ For example:
+</p>
+<pre class="programlisting">
+using msvc : 7.1 ;
+using gcc ;
+</pre>
+<p>
+If the compiler can be found in the <code class="envar">PATH</code> but only by a
+nonstandard name, you can just supply that name:
+</p>
+<pre class="programlisting">
+using gcc : : g++-3.2 ;
+</pre>
+<p>
+Otherwise, it might be necessary to supply the complete path to the
+compiler executable:
+</p>
+<pre class="programlisting">
+using msvc : : Z:/Programs/Microsoft Visual Studio/vc98/bin/cl ;
+</pre>
+<p>
+Some Boost.Build toolsets will use that path to take additional
+actions required before invoking the compiler, such as calling
+vendor-supplied scripts to set up its required environment variables.
+</p>
+<p>To configure several versions of a toolset, simply invoke
+ the <code class="computeroutput">using</code> rule multiple times:
+</p>
+<pre class="programlisting">
+using gcc : 3.3 ;
+using gcc : 3.4 : g++-3.4 ;
+using gcc : 3.2 : g++-3.2 ;
+</pre>
+<p>
+ Note that in the first call to
+ <code class="computeroutput">using</code>, the compiler found in the
+ <code class="envar">PATH</code> will be used, and there's no need to
+ explicitly specify the command.
+ </p>
+<p>As shown above, both the <em class="parameter"><code>version</code></em> and <em class="parameter"><code>invocation-command</code></em> parameters are
+ optional, but there's an important restriction: if you configure
+ the same toolset more than once, you must pass the <em class="parameter"><code>version</code></em>
+ parameter every time. For example, the following is not allowed:
+</p>
+<pre class="programlisting">
+using gcc ;
+using gcc : 3.4 : g++-3.4 ;
+</pre>
+<p>
+ because the first <code class="computeroutput">using</code> call does
+ not specify a <em class="parameter"><code>version</code></em>.
+ </p>
+<p>The <em class="parameter"><code>options</code></em>
+ parameter is used to fine-tune the configuration. All of
+ Boost.Build's standard compiler toolsets accept properties of the
+ four builtin features <code class="varname">cflags</code>,
+ <code class="varname">cxxflags</code>, <code class="varname">compileflags</code> and
+ <code class="varname">linkflags</code> as <em class="parameter"><code>options</code></em> specifying flags that will be
+ always passed to the corresponding tools. Values of the
+ <code class="varname">cflags</code> feature are passed directly to the C
+ compiler, values of the <code class="varname">cxxflags</code> feature are
+ passed directly to the C++ compiler, and values of the
+ <code class="varname">compileflags</code> feature are passed to both. For
+ example, to configure a <span><strong class="command">gcc</strong></span> toolset so that it
+ always generates 64-bit code you could write:
+</p>
+<pre class="programlisting">
+using gcc : 3.4 : : &lt;compileflags&gt;-m64 &lt;linkflags&gt;-m64 ;
+</pre>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial/prebuilt.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="advanced/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced/build_process.html b/doc/html/bbv2/advanced/build_process.html
new file mode 100644
index 0000000000..d65ca9bc2c
--- /dev/null
+++ b/doc/html/bbv2/advanced/build_process.html
@@ -0,0 +1,194 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>The Build Process</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../advanced.html" title="Chapter 24. User documentation">
+<link rel="prev" href="jamfiles.html" title="Writing Jamfiles">
+<link rel="next" href="builtins/targets.html" title="Builtin target types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jamfiles.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="builtins/targets.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.build_process"></a>The Build Process</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="build_process.html#id1704308">Build request</a></span></dt>
+<dt><span class="section"><a href="build_process.html#id1704350">Building a main target</a></span></dt>
+<dt><span class="section"><a href="build_process.html#id1704448">Building a project</a></span></dt>
+</dl></div>
+<p>When you've described your targets, you want Boost.Build to run the
+ right tools and create the needed targets.
+
+ This section will describe
+ two things: how you specify what to build, and how the main targets are
+ actually constructed.
+ </p>
+<p>The most important thing to note is that in Boost.Build, unlike
+ other build tools, the targets you declare do not correspond to specific
+ files. What you declare in a Jamfile is more like a &#8220;metatarget.&#8221;
+
+ Depending on the properties you specify on the command line,
+ each metatarget will produce a set of real targets corresponding
+ to the requested properties. It is quite possible that the same
+ metatarget is built several times with different properties,
+
+ producing different files.
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>
+ This means that for Boost.Build, you cannot directly obtain a build
+ variant from a Jamfile. There could be several variants requested by the
+ user, and each target can be built with different properties.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1704308"></a>Build request</h3></div></div></div>
+<p>
+ The command line specifies which targets to build and with which
+ properties. For example:
+</p>
+<pre class="programlisting">
+bjam app1 lib1//lib1 toolset=gcc variant=debug optimization=full
+</pre>
+<p>
+ would build two targets, "app1" and "lib1//lib1" with the specified
+ properties. You can refer to any targets, using
+ <a href="../reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">target id</a> and specify arbitrary
+ properties. Some of the properties are very common, and for them the name
+ of the property can be omitted. For example, the above can be written as:
+</p>
+<pre class="programlisting">
+bjam app1 lib1//lib1 gcc debug optimization=full
+</pre>
+<p>
+ The complete syntax, which has some additional shortcuts, is
+ described in <a href="../reference.html#bbv2.reference.commandline" title="Command line">the section called &#8220;Command line&#8221;</a>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1704350"></a>Building a main target</h3></div></div></div>
+<p>When you request, directly or indirectly, a build of a main target
+ with specific requirements, the following steps are made. Some brief
+ explanation is provided, and more details are given in <a href="../reference/buildprocess.html" title="Build process">the section called &#8220;Build process&#8221;</a>.
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>Applying default build. If the default-build
+ property of a target specifies a value of a feature that is not
+ present in the build request, that value is added.</p></li>
+<li><p>Selecting the main target alternative to use. For
+ each alternative we look how many properties are present both in
+ alternative's requirements, and in build request. The
+ alternative with large number of matching properties is selected.
+ </p></li>
+<li><p>Determining "common" properties.
+
+ The build request
+ is <a href="../reference/definitions.html#bbv2.reference.variants.proprefine" title="Property refinement">refined</a>
+ with target's requirements.
+
+ The conditional properties in
+ requirements are handled as well. Finally, default values of
+ features are added.
+ </p></li>
+<li><p>Building targets referred by the sources list and
+ dependency properties. The list of sources and the properties
+ can refer to other target using <a href="../reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">target references</a>. For each
+ reference, we take all <a href="../reference/definitions.html#bbv2.reference.features.attributes.propagated">propagated</a>
+ properties, refine them by explicit properties specified in the
+ target reference, and pass the resulting properties as build
+ request to the other target.
+ </p></li>
+<li><p>Adding the usage requirements produced when building
+ dependencies to the "common" properties. When dependencies are
+ built in the previous step, they return
+
+ both the set of created
+ "real" targets, and usage requirements. The usage requirements
+ are added to the common properties and the resulting property
+ set will be used for building the current target.
+ </p></li>
+<li><p>Building the target using generators. To convert the
+ sources to the desired type, Boost.Build uses "generators" ---
+ objects that correspond to tools like compilers and
+ linkers. Each generator declares what type of targets it
+
+ can
+ produce and what type of sources it requires. Using this
+ information, Boost.Build determines which generators must be run
+ to produce a specific target from specific sources. When
+ generators are run, they return the "real" targets.
+ </p></li>
+<li><p>Computing the usage requirements to be returned. The
+ conditional properties in usage requirements are expanded
+
+ and the
+ result is returned.</p></li>
+</ol></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1704448"></a>Building a project</h3></div></div></div>
+<p>Often, a user builds a complete project, not just one main
+ target. In fact, invoking <span><strong class="command">bjam</strong></span> without
+ arguments
+
+ builds the project defined in the current
+ directory.</p>
+<p>When a project is built, the build request is passed without
+ modification to all main targets in that project.
+
+ It's is possible to
+ prevent implicit building of a target in a project with the
+ <code class="computeroutput">explicit</code> rule:
+</p>
+<pre class="programlisting">
+explicit hello_test ;
+</pre>
+<p>
+ would cause the <code class="computeroutput">hello_test</code> target to be built only if
+ explicitly requested by the user or by some other target.
+ </p>
+<p>The Jamfile for a project can include a number of
+ <code class="computeroutput">build-project</code> rule calls
+
+ that specify additional projects
+ to be built.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jamfiles.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="builtins/targets.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced/builtins/features.html b/doc/html/bbv2/advanced/builtins/features.html
new file mode 100644
index 0000000000..6f5a7bddf4
--- /dev/null
+++ b/doc/html/bbv2/advanced/builtins/features.html
@@ -0,0 +1,172 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Builtin features</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../advanced.html" title="Chapter 24. User documentation">
+<link rel="prev" href="targets.html" title="Builtin target types">
+<link rel="next" href="../differences_to_v1.html" title="Differences to Boost.Build V1">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="targets.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../advanced.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="../differences_to_v1.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.builtins.features"></a>Builtin features</h2></div></div></div>
+<div class="variablelist"><dl>
+<dt><span class="term"><code class="literal">variant</code></span></dt>
+<dd>
+<p>
+ A feature that combines several low-level features, making
+ it easy to request common build configurations.
+ </p>
+<p><span class="bold"><strong>Allowed values:</strong></span><code class="literal">debug</code>, <code class="literal">release</code>,
+ <code class="literal">profile</code></p>
+<p>The value <code class="literal">debug</code> expands to</p>
+<pre class="programlisting">
+ &lt;optimization&gt;off &lt;debug-symbols&gt;on &lt;inlining&gt;off &lt;runtime-debugging&gt;on
+ </pre>
+<p>The value <code class="literal">release</code> expands to</p>
+<pre class="programlisting">
+ &lt;optimization&gt;speed &lt;debug-symbols&gt;off &lt;inlining&gt;full &lt;runtime-debugging&gt;off
+ </pre>
+<p>The value <code class="literal">profile</code> expands to the same as
+ <code class="literal">release</code>, plus:</p>
+<pre class="programlisting">
+ &lt;profiling&gt;on &lt;debug-symbols&gt;on
+ </pre>
+<p><span class="bold"><strong>Rationale:</strong></span> Runtime
+ debugging is on in debug builds to suit the expectations of
+ people used to various IDEs.
+
+ It's assumed other folks don't
+ have any specific expectation in this point.
+ </p>
+</dd>
+<dt>
+<a name="bbv2.advanced.builtins.features.link"></a><span class="term"><code class="literal">link</code></span>
+</dt>
+<dd>
+<p>
+ A feature that controls how libraries are built.
+ </p>
+<p><span class="bold"><strong>Allowed values:</strong></span><code class="literal">shared</code>,
+ <code class="literal">static</code></p>
+</dd>
+<dt><span class="term"><code class="literal">source</code></span></dt>
+<dd>
+ The <code class="computeroutput">&lt;source&gt;X</code> feature has the same effect on building a target
+ as putting X in the list of sources. The feature
+ is sometimes more convenient:
+
+ you can put <code class="computeroutput">&lt;source&gt;X</code> in the
+ requirements for a project and <code class="filename">X</code> will
+ be included as a source in all of the project's main
+ targets.
+ </dd>
+<dt><span class="term"><code class="literal">library</code></span></dt>
+<dd>
+ This feature is equivalent to the &lt;source&gt; feature, and exists
+ for backward compatibility reasons.
+ </dd>
+<dt><span class="term"><a name="bbv2.builtin.features.dependency"></a><code class="literal">dependency</code></span></dt>
+<dd>
+ Introduces a dependency on the target named by the
+ value of this feature (so it will be brought
+ up-to-date whenever the target being declared is), and
+ adds its usage requirements to the build properties
+
+ of the target being declared. The dependency is not used
+ in any other way. The primary use case is when you want
+ the usage requirements (such as <code class="computeroutput">#include</code> paths) of some
+ library to be applied, but don't want to link to it.
+ </dd>
+<dt><span class="term"><a name="bbv2.builtin.features.use"></a><code class="literal">use</code></span></dt>
+<dd>
+ Introduces a dependency on the target named by the
+ value of this feature (so it will be brought
+ up-to-date whenever the target being declared is), and
+ adds its usage requirements to the build properties
+
+ of the target being declared. The dependency is not used
+ in any other way. The primary use case is when you want
+ the usage requirements (such as <code class="computeroutput">#include</code> paths) of some
+ library to be applied, but don't want to link to it.
+ </dd>
+<dt><span class="term"><code class="literal">dll-path</code></span></dt>
+<dd>
+ Specify an additional directory where the system should
+ look for shared libraries when the executable or shared
+ library is run. This feature only affects Unix
+ compilers. Plase see <a href="../../faq/dll-path.html" title="Why are the dll-path and
+ hardcode-dll-paths properties useful?
+ ">the section called &#8220;Why are the <code class="computeroutput">dll-path</code> and
+ <code class="computeroutput">hardcode-dll-paths</code> properties useful?
+ &#8221;</a>
+ in <a href="../../faq.html" title="Chapter 27. Frequently Asked Questions">Chapter 27, <i>Frequently Asked Questions</i></a> for details.
+ </dd>
+<dt><span class="term"><code class="literal">hardcode-dll-paths</code></span></dt>
+<dd>
+<p>
+ Controls automatic generation of dll-path properties.
+ </p>
+<p><span class="bold"><strong>Allowed values:</strong></span><code class="literal">true</code>, <code class="literal">false</code>. This property
+ is specific to Unix systems. If an executable is built with
+ <code class="computeroutput">&lt;hardcode-dll-paths&gt;true</code>, the generated binary
+ will contain the list of all the paths to the used shared
+ libraries. As the result, the executable can be run without
+ changing system paths to shared libraries or installing the
+ libraries to system paths. This
+
+ is very convenient during
+ development. Plase see the <a href="../../faq/dll-path.html" title="Why are the dll-path and
+ hardcode-dll-paths properties useful?
+ ">FAQ entry</a> for details.
+ Note that on Mac OSX, the paths are unconditionally hardcoded by
+ the linker, and it's not possible to disable that behaviour.
+ </p>
+</dd>
+<dt>
+<span class="term"><code class="literal">cflags</code>, </span><span class="term"><code class="literal">cxxflags</code>, </span><span class="term"><code class="literal">linkflags</code></span>
+</dt>
+<dd>
+ The value of those features is passed without modification to the
+ corresponding tools. For <code class="computeroutput">cflags</code> that's both C and C++
+ compilers, for <code class="computeroutput">cxxflags</code> that's C++ compiler and for
+ <code class="computeroutput">linkflags</code> that's linker. The features are handy when
+ you're trying to do something special that cannot be achieved by
+ higher-level feature in Boost.Build.
+ </dd>
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="targets.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../advanced.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="../differences_to_v1.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced/builtins/targets.html b/doc/html/bbv2/advanced/builtins/targets.html
new file mode 100644
index 0000000000..f3a29479b7
--- /dev/null
+++ b/doc/html/bbv2/advanced/builtins/targets.html
@@ -0,0 +1,390 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Builtin target types</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../advanced.html" title="Chapter 24. User documentation">
+<link rel="prev" href="../build_process.html" title="The Build Process">
+<link rel="next" href="features.html" title="Builtin features">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../build_process.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../advanced.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="features.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.builtins.targets"></a>Builtin target types</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="targets.html#id1704505">Programs</a></span></dt>
+<dt><span class="section"><a href="targets.html#id1704568">Libraries</a></span></dt>
+<dt><span class="section"><a href="targets.html#bbv2.builtins.alias">Alias</a></span></dt>
+<dt><span class="section"><a href="targets.html#bbv2.builtins.stage">Installing</a></span></dt>
+<dt><span class="section"><a href="targets.html#bbv2.builtins.testing">Testing</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1704505"></a>Programs</h3></div></div></div>
+<p>Programs are created using the <code class="computeroutput">exe</code> rule, which
+ follows the <a href="../jamfiles.html#bbv2.main-target-rule-syntax">common
+ syntax</a>. For example:
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp some_library.lib /some_project//library
+ : &lt;threading&gt;multi
+ ;
+</pre>
+<p>
+ This will create an executable file from the sources -- in this case,
+ one C++ file, one library file present in the same directory, and
+ another library that is created by Boost.Build. Generally, sources
+ can include C and C++ files, object files and libraries. Boost.Build
+ will automatically try to convert targets of other types.
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>
+ On Windows, if an application uses dynamic libraries, and both
+ the application and the libraries are built by Boost.Build, its not
+ possible to immediately run the application, because the
+ <code class="literal">PATH</code> environment variable should include the path
+ to the libraries. It means you have to either add the paths
+ manually, or place the application and the libraries to the same
+ directory, for example using the <a href="targets.html#bbv2.builtins.stage" title="Installing">
+ stage</a> rule.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1704568"></a>Libraries</h3></div></div></div>
+<p>Libraries are created using the <code class="computeroutput">lib</code> rule, which
+ follows the <a href="../jamfiles.html#bbv2.main-target-rule-syntax">common
+ syntax</a>. For example:
+</p>
+<pre class="programlisting">
+lib helpers : helpers.cpp : &lt;include&gt;boost : : &lt;include&gt;. ;
+</pre>
+<p>In the most common case, the <code class="computeroutput">lib</code> creates a library
+ from the specified sources. Depending on the value of
+ &lt;link&gt; feature the library will be either static or
+ shared. There are two other cases. First is when the library is
+ installed somewhere in compiler's search paths, and should be
+ searched by the compiler (typically, using the <code class="option">-l</code>
+ option). The second case is where the library is available as a
+ prebuilt file and the full path is known.
+ </p>
+<p>
+ The syntax for these case is given below:
+</p>
+<pre class="programlisting">
+lib z : : &lt;name&gt;z &lt;search&gt;/home/ghost ;
+lib compress : : &lt;file&gt;/opt/libs/compress.a ;
+</pre>
+<p>
+ The <code class="computeroutput">name</code> property specifies the name that should be
+ passed to the <code class="option">-l</code> option, and the <code class="computeroutput">file</code>
+ property specifies the file location. The <code class="varname">search</code> feature
+ specifies paths in which to search for the library. That feature can
+ be specified several times, or it can be omitted, in which case only
+ default compiler paths will be searched.
+ </p>
+<p>The difference between using the <code class="varname">file</code> feature as
+ opposed to the <code class="varname">name</code> feature together with the
+ <code class="varname">search</code> feature is that <code class="varname">file</code> is more
+ precise. A specific file will be used. On the other hand, the
+ <code class="varname">search</code> feature only adds a library path, and the
+ <code class="varname">name</code> feature gives the basic name of the library. The
+ search rules are specific to the linker. For example, given these
+ definition:
+</p>
+<pre class="programlisting">
+lib a : : &lt;variant&gt;release &lt;file&gt;/pool/release/a.so ;
+lib a : : &lt;variant&gt;debug &lt;file&gt;/pool/debug/a.so ;
+lib b : : &lt;variant&gt;release &lt;file&gt;/pool/release/b.so ;
+lib b : : &lt;variant&gt;debug &lt;file&gt;/pool/debug/b.so ;
+</pre>
+<p>
+ It's possible to use release version of <code class="computeroutput">a</code> and debug
+ version of <code class="computeroutput">b</code>. Had we used the <code class="varname">name</code> and
+ <code class="varname">search</code> features, the linker would always pick either
+ release or debug versions.
+ </p>
+<p>
+ For convenience, the following syntax is allowed:
+</p>
+<pre class="programlisting">
+lib z ;
+lib gui db aux ;
+</pre>
+<p>
+ and is does exactly the same as:
+</p>
+<pre class="programlisting">
+lib z : : &lt;name&gt;z ;
+lib gui : : &lt;name&gt;gui ;
+lib db : : &lt;name&gt;db ;
+lib aux : : &lt;name&gt;aux ;
+</pre>
+<p>When a library uses another library you should put that another
+ library in the list of sources. This will do the right thing in all
+ cases. For portability, you should specify library dependencies even
+ for searched and prebuilt libraries, othewise, static linking on
+ Unix won't work. For example:
+</p>
+<pre class="programlisting">
+lib z ;
+lib png : z : &lt;name&gt;png ;
+</pre>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>When a library (say, <code class="computeroutput">a</code>), that has another
+ library, (say, <code class="computeroutput">b</code>)
+
+ is linked dynamically, the <code class="computeroutput">b</code>
+ library will be incorporated
+
+ in <code class="computeroutput">a</code>. (If <code class="computeroutput">b</code>
+ is dynamic library as well, then <code class="computeroutput">a</code> will only refer to
+ it, and not include any extra code.)
+
+ When the <code class="computeroutput">a</code>
+ library is linked statically, Boost.Build will assure that all
+ executables that link to <code class="computeroutput">a</code> will also link to
+ <code class="computeroutput">b</code>.
+ </p>
+</div>
+<p>One feature of Boost.Build that is very important for libraries
+ is usage requirements.
+
+ For example, if you write:
+</p>
+<pre class="programlisting">
+lib helpers : helpers.cpp : : : &lt;include&gt;. ;
+</pre>
+<p>
+ then the compiler include path for all targets that use
+ <code class="computeroutput">helpers</code> will contain the directory
+
+ where the target is defined.path to "helpers.cpp". The user
+ only needs to add <code class="computeroutput">helpers</code> to the list of sources,
+ and needn't consider the requirements its use imposes on a
+ dependent target. This feature greatly simplifies Jamfiles.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>If you don't want shared libraries to include all libraries
+ that are specified in sources (especially statically linked ones),
+ you'd need to use the following:
+</p>
+<pre class="programlisting">
+lib b : a.cpp ;
+lib a : a.cpp : &lt;use&gt;b : : &lt;library&gt;b ;
+</pre>
+<p>
+ This specifies that <code class="computeroutput">a</code> uses <code class="computeroutput">b</code>, and causes
+ all executables that link to <code class="computeroutput">a</code> also link to
+ <code class="computeroutput">b</code>. In this case, even for shared linking, the
+ <code class="computeroutput">a</code> library won't even refer to <code class="computeroutput">b</code>.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.builtins.alias"></a>Alias</h3></div></div></div>
+<p>The <code class="computeroutput">alias</code> rule follows the <a href="../jamfiles.html#bbv2.main-target-rule-syntax">common syntax</a>. For
+ example:
+</p>
+<pre class="programlisting">
+alias core : im reader writer ;
+</pre>
+<p>
+ will build the sources
+
+ and return
+
+ the generated source targets
+ without modification.
+ </p>
+<p>
+ The <code class="computeroutput">alias</code> rule is a convenience tool. If you often build
+ the same group of targets at the same time, you can define an alias
+ to save typing.
+ </p>
+<p>
+ Another use of the <code class="computeroutput">alias</code> rule is to change build
+ properties. For example, if you always want static linking for a
+ specific C++ Boost library, you can write the following:
+</p>
+<pre class="programlisting">
+alias threads : /boost/thread//boost_thread : &lt;link&gt;static ;
+</pre>
+<p>
+ and use only the <code class="computeroutput">threads</code> alias in your Jamfiles.
+ </p>
+<p>
+ You can also specify usage requirements for the
+ <code class="computeroutput">alias</code> target. If you write the following:
+</p>
+<pre class="programlisting">
+alias header_only_library : : : : &lt;include&gt;/usr/include/header_only_library ;
+</pre>
+<p>
+ then using <code class="computeroutput">header_only_library</code> in sources will only add an
+ include path. Also note that when there are some sources, their usage
+ requirements are propagated, too. For example:
+</p>
+<pre class="programlisting">
+lib lib : lib.cpp : : : &lt;include&gt;. ;
+alias lib_alias ;
+exe main : main.cpp lib_alias ;
+</pre>
+<p>
+ will compile <code class="filename">main.cpp</code> with the additional include.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.builtins.stage"></a>Installing</h3></div></div></div>
+<p>For installing a built target you should use the
+ <code class="computeroutput">install</code> rule, which follows the <a href="../jamfiles.html#bbv2.main-target-rule-syntax">common syntax</a>. For
+ example:
+</p>
+<pre class="programlisting">
+install dist : hello helpers ;
+</pre>
+<p>
+ will cause the targets <code class="computeroutput">hello</code> and <code class="computeroutput">helpers</code> to
+ be moved to the <code class="filename">dist</code> directory, relative to
+ Jamfile's directory. The directory can
+ be changed with the <code class="computeroutput">location</code> property:
+</p>
+<pre class="programlisting">
+install dist : hello helpers : &lt;location&gt;/usr/bin ;
+</pre>
+<p>
+ While you can achieve the same effect by changing the target name to
+ <code class="filename">/usr/bin</code>, using the <code class="computeroutput">location</code>
+ property is better, because it allows you to use a memnonic target
+ name.
+ </p>
+<p>The <code class="computeroutput">location</code> property is especially handy when the location
+ is not fixed, but depends on build variant or environment variables:
+</p>
+<pre class="programlisting">
+install dist : hello helpers : &lt;variant&gt;release:&lt;location&gt;dist/release
+ &lt;variant&gt;debug:&lt;location&gt;dist/debug ;
+install dist2 : hello helpers : &lt;location&gt;$(DIST) ;
+</pre>
+<p>
+ See also <a href="../../reference/definitions.html#bbv2.reference.variants.propcond" title="Conditional properties">conditional
+ properties</a> and <a href="../../faq/envar.html" title="
+ Accessing environment variables
+ ">environment variables</a></p>
+<p>
+ Specifying the names of all libraries to install can be boring. The
+ <code class="computeroutput">install</code> allows you to specify only the top-level executable
+ targets to install, and automatically install all dependencies:
+</p>
+<pre class="programlisting">
+install dist : hello
+ : &lt;install-dependencies&gt;on &lt;install-type&gt;EXE
+ &lt;install-type&gt;LIB
+ ;
+</pre>
+<p>
+ will find all targets that <code class="computeroutput">hello</code> depends on, and install
+ all of the which are either executables or libraries. More
+ specifically, for each target, other targets that were specified as
+ sources or as dependency properties, will be recursively found. One
+ exception is that targets referred with the <a href="features.html#bbv2.builtin.features.use"><code class="computeroutput">use</code></a> feature
+ are not considered, because that feature is typically used to refer to
+ header-only libraries.
+ If the set of target types is specified, only targets of that type
+ will be installed, otherwise, all found target will be installed.
+ </p>
+<p>The <a href="targets.html#bbv2.builtins.alias" title="Alias"><code class="computeroutput">alias</code></a>
+ rule can be used when targets must be installed into several
+ directories:
+</p>
+<pre class="programlisting">
+install install : install-bin install-lib ;
+install install-bin : applications : /usr/bin ;
+install install-lib : helper : /usr/lib ;
+</pre>
+<p>Because the <code class="computeroutput">install</code> rule just copies targets, most
+ free features <sup>[<a name="id1705185" href="#ftn.id1705185">6</a>]</sup>
+ have no effect when used in requirements of the <code class="computeroutput">install</code>.
+ The only two which matter are
+ <a href="features.html#bbv2.builtin.features.dependency"><code class="varname">dependency</code></a> and, on Unix,
+ <code class="varname">dll-path</code>.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+ (Unix specific). On Unix, executables built with Boost.Build typically
+ contain the list of paths to all used dynamic libraries. For
+ installing, this is not desired, so Boost.Build relinks the executable
+ with an empty list of paths. You can also specify additional paths for
+ installed executables with the <code class="varname">dll-path</code> feature.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.builtins.testing"></a>Testing</h3></div></div></div>
+<p>Boost.Build has convenient support for running unit tests. The
+ simplest way is the <code class="computeroutput">unit-test</code> rule, which follows the
+ <a href="../jamfiles.html#bbv2.main-target-rule-syntax">common syntax</a>. For
+ example:
+</p>
+<pre class="programlisting">
+unit-test helpers_test : helpers_test.cpp helpers ;
+</pre>
+<p>The <code class="computeroutput">unit-test</code> rule behaves like the
+ <code class="computeroutput">exe</code> rule, but after the executable is created it is
+ run. If the executable returns an error code, the build system will also
+ return an error and will try running the executable on the next
+ invocation until it runs successfully. This behaviour ensures that you
+ can't miss a unit test failure.
+ </p>
+<p>There are rules for more elaborate testing: <code class="computeroutput">compile</code>,
+ <code class="computeroutput">compile-fail</code>, <code class="computeroutput">run</code> and
+ <code class="computeroutput">run-fail</code>. They are more suitable for automated testing, and
+ are not covered here.
+ </p>
+</div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id1705185" href="#id1705185">6</a>] </sup>see the definition of "free" in <a href="../../reference/definitions.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>.</p></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../build_process.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../advanced.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="features.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced/differences_to_v1.html b/doc/html/bbv2/advanced/differences_to_v1.html
new file mode 100644
index 0000000000..715fa28afc
--- /dev/null
+++ b/doc/html/bbv2/advanced/differences_to_v1.html
@@ -0,0 +1,138 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Differences to Boost.Build V1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../advanced.html" title="Chapter 24. User documentation">
+<link rel="prev" href="builtins/features.html" title="Builtin features">
+<link rel="next" href="../extender.html" title="Chapter 25. Extender Manual">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="builtins/features.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="../extender.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.differences_to_v1"></a>Differences to Boost.Build V1</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="differences_to_v1.html#bbv2.advanced.differences_to_v1.configuration">Configuration</a></span></dt>
+<dt><span class="section"><a href="differences_to_v1.html#bbv2.advanced.differences_to_v1.jamfiles">Writing Jamfiles</a></span></dt>
+<dt><span class="section"><a href="differences_to_v1.html#bbv2.advanced.differences_to_v1.build_process">Build process</a></span></dt>
+</dl></div>
+<p>While Boost.Build V2 is based on the same ideas as Boost.Build V1,
+ some of the syntax was changed, and some new important features were
+ added. This chapter describes most of the changes.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.differences_to_v1.configuration"></a>Configuration</h3></div></div></div>
+<p>In V1, there were two methods to configure a toolset. One was to
+ set some environment variable, or use the <code class="option">-s</code> command line option to set
+ a variable inside BJam.
+
+ Another method was to create a new toolset module that would set
+ the variables and then invoke the base toolset. Neither method
+ is necessary now: the <code class="computeroutput">using</code> rule provides a consistent way to
+ initialize a toolset,
+
+ including several versions. See <a href="../advanced.html#bbv2.advanced.configuration" title="Configuration">the section called &#8220;Configuration&#8221;</a> for details.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.differences_to_v1.jamfiles"></a>Writing Jamfiles</h3></div></div></div>
+<p>Probably one of the most important differences in V2 Jamfiles is
+ the use of project requirements. In V1, if several targets had the same
+ requirements (for example, a common <code class="computeroutput">#include</code> path), it was necessary to
+ manually write the requirements or use a helper rule or template target. In V2, the
+ common properties can be specified with the <code class="computeroutput">requirements</code> project
+ attribute, as documented in <a href="jamfiles.html#bbv2.advanced.projects" title="Projects">the section called &#8220;Projects&#8221;</a>.
+ </p>
+<p><a href="../tutorial/libs.html" title="Dependent Targets">Usage requirements</a>
+ also help to simplify Jamfiles.
+
+ If a library requires
+ all clients to use specific <code class="computeroutput">#include</code> paths or macros when compiling
+ code that depends on the library, that information can be cleanly
+ represented.</p>
+<p>The difference between <code class="computeroutput">lib</code> and <code class="computeroutput">dll</code> targets in V1 is completely
+ eliminated in V2. There's only one library target type, <code class="computeroutput">lib</code>, which can create
+ either static or shared libraries depending on the value of the
+ <a href="builtins/features.html#bbv2.advanced.builtins.features.link"><code class="varname">&lt;link&gt;</code>
+ feature</a>. If your target should be only built in one way, you
+ can add <code class="computeroutput">&lt;link&gt;shared</code> or <code class="computeroutput">&lt;link&gt;static</code> to its requirements.
+ </p>
+<p>The syntax for referring to other targets was changed a bit. While
+ in V1 one would use:
+</p>
+<pre class="programlisting">
+exe a : a.cpp &lt;lib&gt;../foo/bar ;
+</pre>
+<p>
+ the V2 syntax is:
+</p>
+<pre class="programlisting">
+exe a : a.cpp ../foo//bar ;
+</pre>
+<p>
+ Note that you don't need to specify the type of other target, but the
+ last element should be separated from the others by a double slash to indicate that
+ you're referring to target <code class="filename">bar</code> in project <code class="filename">../foo</code>, and not to
+ project <code class="filename">../foo/bar</code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.differences_to_v1.build_process"></a>Build process</h3></div></div></div>
+<p>The command line syntax in V2 is completely different. For example
+</p>
+<pre class="programlisting">
+bjam -sTOOLS=msvc -sBUILD=release some_target
+</pre>
+<p>
+ now becomes:
+</p>
+<pre class="programlisting">
+bjam toolset=msvc variant=release some_target
+</pre>
+<p>
+ or, using implicit features, just:
+</p>
+<pre class="programlisting">
+bjam msvc release some_target
+</pre>
+<p>
+ See <a href="../reference.html#bbv2.reference.commandline" title="Command line">the reference</a> for a
+ complete description of the syntax.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="builtins/features.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="../extender.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/advanced/jamfiles.html b/doc/html/bbv2/advanced/jamfiles.html
new file mode 100644
index 0000000000..dd05335494
--- /dev/null
+++ b/doc/html/bbv2/advanced/jamfiles.html
@@ -0,0 +1,465 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Writing Jamfiles</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../advanced.html" title="Chapter 24. User documentation">
+<link rel="prev" href="../advanced.html" title="Chapter 24. User documentation">
+<link rel="next" href="build_process.html" title="The Build Process">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../advanced.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="build_process.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.advanced.jamfiles"></a>Writing Jamfiles</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="jamfiles.html#bbv2.advanced.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="jamfiles.html#bbv2.advanced.targets">Main targets</a></span></dt>
+<dt><span class="section"><a href="jamfiles.html#bbv2.advanced.projects">Projects</a></span></dt>
+<dt><span class="section"><a href="jamfiles.html#bbv2.advanced.other-rules">Jamfile Utility Rules</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.overview"></a>Overview</h3></div></div></div>
+<p>Jamfiles are the thing that is most important to the user,
+
+ bacause they declare the targets that should be built.
+
+ Jamfiles are also used for organizing targets&#8212;
+
+ each Jamfile is a separate project
+
+ that can be built independently from the other projects.
+ </p>
+<p>Jamfiles mostly contain calls to Boost.Build functions that do
+ all the work, specifically:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="jamfiles.html#bbv2.advanced.targets" title="Main targets">declare main
+ targets</a></p></li>
+<li><p><a href="jamfiles.html#bbv2.advanced.projects" title="Projects">define
+ project properties</a></p></li>
+<li><p><a href="jamfiles.html#bbv2.advanced.other-rules" title="Jamfile Utility Rules">do various other
+ things</a></p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.targets"></a>Main targets</h3></div></div></div>
+<p><a name="bbv2.advanced.targets.main"></a>
+ A <em class="firstterm">Main target</em> is a user-defined named
+ entity that can be built, for example an executable file.
+
+ Declaring a main target is usually done using one of the main
+ target rules described in <a href="builtins/targets.html" title="Builtin target types">the section called &#8220;Builtin target types&#8221;</a>. The user can also declare
+ custom main target rules as shown in <a href="../extending/rules.html" title="Main target rules">the section called &#8220;Main target rules&#8221;</a>.
+</p>
+<p>Most main target rules in Boost.Build can be invoked with
+ a common syntax:</p>
+<a name="bbv2.main-target-rule-syntax"></a><pre class="programlisting"><em class="replaceable"><code>rule-name</code></em>&#8194;<em class="replaceable"><code>main-target-name</code></em>
+ : <em class="replaceable"><code>sources...</code></em>
+ : <em class="replaceable"><code>requirements...</code></em>
+ : <em class="replaceable"><code>default-build...</code></em>
+ : <em class="replaceable"><code>usage-requirements...</code></em>
+ ;
+</pre>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<em class="parameter"><code>main-target-name</code></em> is the name used
+ to request the target on command line and to use it from
+ other main targets. A main target name may contain
+ alphanumeric characters, dashes
+ (&#8216;<code class="computeroutput">-</code>&#8217;), and underscores
+ (&#8216;<code class="computeroutput">_</code>&#8217;).
+ </li>
+<li>
+<em class="parameter"><code>sources</code></em> is the list of source files and other main
+ targets that must be combined.
+ </li>
+<li>
+<em class="parameter"><code>requirements</code></em> is the list of properties that must always
+ be present when this main target is built.
+ </li>
+<li>
+<em class="parameter"><code>default-build</code></em> is the list of properties that will be used
+ unless some other value of the same feature is already
+ specified, e.g. on the command line or by propogation from a dependent target.
+ </li>
+<li>
+<em class="parameter"><code>usage-requirements</code></em> is the list of properties that will be
+ propagated to all main targets that use this one, i.e. to all its
+ dependents.
+ </li>
+</ul></div>
+<p>
+ Some main target rules have a shorter list of parameters;
+ consult their documentation for details.
+ </p>
+<p>Note that the actual requirements, default-build and
+ usage-requirements attributes for a target are obtained by
+ combining the explicitly specified ones with those specified for
+ the project where a target is declared.
+ </p>
+<p>The list of sources specifies what should be processed to
+ get the resulting targets. Most of the time, it's just a list of
+ files. Sometimes, you'll want to automatically construct the
+ list of source files rather than having to spell it out
+ manually, in which case you can use the
+ <code class="computeroutput">glob</code> rule. Here are two examples:
+</p>
+<pre class="programlisting">
+exe a : a.cpp ; # a.cpp is the only source file
+exe b : [ glob *.cpp ] ; # all .cpp files in this directory are sources
+</pre>
+<p>
+ Unless you specify a files with absolute path, the name is
+ considered relative to the source directory -- which is typically
+ the directory where the Jamfile is located, but can be changed as
+ described in <a href="jamfiles.html#bbv2.advanced.projects.attributes.projectrule" title="">the section called &#8220;Projects&#8221;</a>.
+ </p>
+<p>
+ The list of sources can also refer to other main targets.
+ Targets in the same project can be referred to by name, while
+ targets in other projects need to be qualified with a directory or a symbolic
+ project name. For example:
+</p>
+<pre class="programlisting">
+lib helper : helper.cpp ;
+exe a : a.cpp helper ;
+exe b : b.cpp ..//utils ;
+exe c : c.cpp /boost/program_options//program_options ;
+</pre>
+<p>
+ The first exe uses the library defined in the same
+ project. The second one uses some target (most likely library)
+ defined by Jamfile one level higher. Finally, the third target
+ uses some <a href="http://boost.org" target="_top">C++ Boost</a>
+ library, referring to it by its absolute symbolic name. More
+ information about it can be found in <a href="../tutorial/libs.html" title="Dependent Targets">the section called &#8220;Dependent Targets&#8221;</a> and <a href="../reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">the section called &#8220;Target identifiers and references&#8221;</a>.
+ </p>
+<p>Requirements are the properties that should always be present when
+ building a target. Typically, they are includes and defines:
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp : &lt;include&gt;/opt/boost &lt;define&gt;MY_DEBUG ;
+</pre>
+<p>
+ In special circumstances,
+
+ other properties can be used, for example if
+ a library can only be built statically, or a file can't be compiled
+ with optimization due to a compiler bug, one can use
+</p>
+<pre class="programlisting">
+lib util : util.cpp : &lt;link&gt;static ;
+obj main : main.cpp : &lt;optimization&gt;off ;
+</pre>
+<p>Sometimes requirements are necessary only for a specific
+ compiler or build variant. <a href="../reference/definitions.html#bbv2.reference.variants.propcond" title="Conditional properties">Conditional
+ properties</a> can be used in that case:
+ </p>
+<pre class="programlisting">
+lib util : util.cpp : &lt;toolset&gt;msvc:&lt;link&gt;static ;
+</pre>
+<p>
+ Whenever <code class="computeroutput">&lt;toolset&gt;msvc</code> property is
+ in build properties, the <code class="computeroutput">&lt;link&gt;static</code> property will
+ be included as well. Conditional requirements can be &#8220;chained&#8221;:
+</p>
+<pre class="programlisting">
+lib util : util.cpp : &lt;toolset&gt;msvc:&lt;link&gt;static
+ &lt;link&gt;static:&lt;define&gt;STATIC_LINK ;
+</pre>
+<p>
+ will set of static link
+
+ and the <code class="computeroutput">STATIC_LINK</code> define on the
+ <code class="computeroutput">msvc</code> toolset.
+ </p>
+<p>The <code class="varname">default-build</code> parameter
+
+ is a set of properties to be used if the build request does
+ not otherwise specify a value for features in the set. For example:
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp : : &lt;threading&gt;multi ;
+</pre>
+<p>
+ would build a multi-threaded target in unless the user
+ explicitly requests a single-threaded version. The difference between
+ requirements and default-build is that requirements cannot be
+ overriden in any way.</p>
+<p>A target of the same name can be declared several times, in which
+ case each declaration is called an
+ <em class="firstterm">alternative</em>. When the target is built, one of
+ the alternatives will be selected and used. Alternatives need not be
+ defined by the same main target rule. For example,
+</p>
+<pre class="programlisting">
+lib helpers : helpers.hpp ; # a header-only library
+alias helpers : helpers.lib : &lt;toolset&gt;msvc ; # except on msvc
+</pre>
+<p>The actual commands used to build any given main target can differ greatly from
+ platform to platform. For example, you might have different lists
+ of sources for different compilers, or different options for those
+ compilers. Two approaches to this are explained in the
+ <a href="../tutorial/conditions.html" title="Conditions and alternatives">tutorial</a>.
+ </p>
+<p>Sometimes a main target is really needed only by some other main
+ target. For example, a rule that declares a test-suite uses a main
+ target
+
+ that represent test, but those main targets are rarely needed
+ by themselves.
+ </p>
+<p>It is possible to declare a target inline, i.e. the "sources"
+ parameter may include calls to other main rules. For example:</p>
+<pre class="programlisting">
+exe hello : hello.cpp
+ [ obj helpers : helpers.cpp : &lt;optimization&gt;off ] ;
+</pre>
+<p>
+ Will cause "helpers.cpp" to be always compiled without
+ optimization.
+
+ When referring to an inline main target, its declared name
+ must be prefixed by its parent target's name and two dots. In
+ the example above, to build only helpers, one should run
+ <code class="computeroutput">bjam hello..helpers</code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.projects"></a>Projects</h3></div></div></div>
+<p>As mentioned before, targets are grouped into projects,
+ and each Jamfile is a separate project. Projects are useful
+ because they allow us to group related targets together, define
+ properties common to all those targets, and assign a symbolic
+ name to the project that can be used in referring to its
+ targets.
+ </p>
+<p>Projects are named using the
+ <code class="computeroutput">project</code> rule, which has the
+ following syntax:
+</p>
+<pre class="programlisting">
+project <em class="replaceable"><code>id</code></em> : <em class="replaceable"><code>attributes</code></em> ;
+</pre>
+<p>
+ Here, <em class="replaceable"><code>attributes</code></em> is a sequence of
+ rule arguments, each of which begins with an attribute-name
+ and is followed by any number of build properties.
+ The list
+ of attribute names along with its handling is also shown in
+ the table below. For example, it is possible to write:
+</p>
+<pre class="programlisting">
+project tennis
+ : requirements &lt;threading&gt;multi
+ : default-build release
+ ;
+</pre>
+<p>The possible attributes are listed below.</p>
+<p><span class="emphasis"><em>Project id</em></span> is a short way to denote a project, as
+ opposed to the Jamfile's pathname. It is a hierarchical path,
+ unrelated to filesystem, such as "boost/thread". <a href="../reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">Target references</a> make use of project ids to
+ specify a target.</p>
+<p><span class="emphasis"><em>Source location</em></span> specifies the directory where sources
+ for the project are located.</p>
+<p><span class="emphasis"><em>Project requirements</em></span> are requirements that apply to
+ all the targets in the projects as well as all subprojects.</p>
+<p><span class="emphasis"><em>Default build</em></span> is the build request that should be
+ used when no build request is specified explicitly.</p>
+<p><a name="bbv2.advanced.projects.attributes.projectrule"></a>
+ The default values for those attributes are
+ given in the table below.
+
+ </p>
+<div class="table">
+<a name="id1703973"></a><p class="title"><b>Table 24.1. </b></p>
+<table class="table" summary="">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Attribute</th>
+<th>Name for the 'project' rule</th>
+<th>Default value</th>
+<th>Handling by the 'project' rule</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Project id</td>
+<td>none</td>
+<td>none</td>
+<td>Assigned from the first parameter of the 'project' rule.
+ It is assumed to denote absolute project id.</td>
+</tr>
+<tr>
+<td>Source location</td>
+<td><code class="literal">source-location</code></td>
+<td>The location of jamfile for the project</td>
+<td>Sets to the passed value</td>
+</tr>
+<tr>
+<td>Requirements</td>
+<td><code class="literal">requirements</code></td>
+<td>The parent's requirements</td>
+<td>The parent's requirements are refined with the passed
+ requirement and the result is used as the project
+ requirements.</td>
+</tr>
+<tr>
+<td>Default build</td>
+<td><code class="literal">default-build</code></td>
+<td>none</td>
+<td>Sets to the passed value</td>
+</tr>
+<tr>
+<td>Build directory</td>
+<td><code class="literal">build-dir</code></td>
+<td>Empty if the parent has no build directory set.
+ Otherwise, the parent's build directory with with the
+ relative path from parent to the current project
+ appended to it.
+ </td>
+<td>Sets to the passed value, interpreted as relative to the
+ project's location.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>Besides defining projects and main targets, Jamfiles
+ commonly invoke utility rules such as
+ <code class="computeroutput">constant</code> and
+ <code class="computeroutput">path-constant</code>, which inject a
+ specified Boost.Jam variable setting into this project's Jamfile
+ module and those of all its subprojects. See <a href="jamfiles.html#bbv2.advanced.other-rules" title="Jamfile Utility Rules">the section called &#8220;Jamfile Utility Rules&#8221;</a> for a complete description
+ of these utility rules. Jamfiles are regular Boost.Jam source
+ files and Boost.Build modules, so naturally they can contain any kind of Boost.Jam code,
+ including rule definitions.
+ </p>
+<p>Each subproject inherits attributes, constants and rules
+ from its parent project, which is defined by the nearest
+ Jamfile in an ancestor directory above
+ the subproject. The top-level project is declared in a file
+ called <code class="filename">Jamroot</code> rather than
+ <code class="filename">Jamfile</code>. When loading a project,
+ Boost.Build looks for either <code class="filename">Jamroot</code> or
+ <code class="computeroutput">Jamfile</code>. They are handled indentically, except
+ that if the file is called <code class="filename">Jamroot</code>, the
+ search for a parent project is not performed.
+ </p>
+<p>Even when building in a subproject directory, parent
+ project files are always loaded before those of their
+ subprojects, so that every definition made in a parent project
+ is always available to its children. The loading order of any
+ other projects is unspecified. Even if one project refers to
+ another via <a href="../../"><code class="computeroutput">use-project</code></a>,
+ or a target reference, no specific order should be assumed.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Giving the root project the special name
+ &#8220;<code class="filename">Jamroot</code>&#8221; ensures that
+ Boost.Build won't misinterpret a directory above it as the
+ project root just because the directory contains a Jamfile.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.advanced.other-rules"></a>Jamfile Utility Rules</h3></div></div></div>
+<p>The following table describes utility rules that can be
+ used in Jamfiles. Detailed information for any of these rules can
+ be obtained by running:
+</p>
+<pre class="screen">
+bjam --help project.<em class="replaceable"><code>rulename</code></em></pre>
+<div class="table">
+<a name="id1704194"></a><p class="title"><b>Table 24.2. </b></p>
+<table class="table" summary="">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Rule</th>
+<th>Semantics</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="jamfiles.html#bbv2.advanced.projects.attributes.projectrule">project</a></td>
+<td>Define this project's symbolic ID or attributes.</td>
+</tr>
+<tr>
+<td><a href="../../">use-project</a></td>
+<td>Make another project known so that it can be referred to by symbolic ID.</td>
+</tr>
+<tr>
+<td><a href="../../">build-project</a></td>
+<td>Cause another project to be built when this one is built.</td>
+</tr>
+<tr>
+<td><a href="../../">explicit</a></td>
+<td>State that a target should be built only by explicit
+ request.</td>
+</tr>
+<tr>
+<td>glob</td>
+<td>Translate a list of shell-style wildcards into a
+ corresponding list of files.</td>
+</tr>
+<tr>
+<td>constant</td>
+<td>Injects a variable setting into this project's
+ Jamfile module and those of all its subprojects.</td>
+</tr>
+<tr>
+<td>path-constant</td>
+<td>Injects a variable set to a path value into
+ this project's Jamfile module and those of all its subprojects.
+ If the value is a relative path it will be adjusted for
+ each subproject so that it refers to the same
+ directory.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../advanced.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="build_process.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/arch.html b/doc/html/bbv2/arch.html
new file mode 100644
index 0000000000..c70b156c99
--- /dev/null
+++ b/doc/html/bbv2/arch.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Appendix B. Boost.Build v2 architecture</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="recipies/site-config.html" title="Targets in site-config.jam">
+<link rel="next" href="arch/build.html" title="The build layer">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recipies/site-config.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="arch/build.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="appendix" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.arch"></a>Appendix B. Boost.Build v2 architecture</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="arch.html#bbv2.arch.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="arch/build.html">The build layer</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="arch/build.html#bbv2.arch.metatargets">Metatargets</a></span></dt>
+<dt><span class="section"><a href="arch/build.html#bbv2.arch.virtual">Virtual targets</a></span></dt>
+<dt><span class="section"><a href="arch/build.html#bbv2.arch.properties"></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="arch/tools.html">The tools layer</a></span></dt>
+<dt><span class="section"><a href="arch/targets.html">Targets</a></span></dt>
+<dd><dl><dt><span class="section"><a href="arch/targets.html#bbv2.arch.depends">Dependency scanning</a></span></dt></dl></dd>
+</dl>
+</div>
+<div class="sidebar"><p>This document is work-in progress. Don't expect much from it
+ yet.</p></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.arch.overview"></a>Overview</h2></div></div></div>
+<p>The Boost.Build code is structured in four different components:
+ "kernel", "util", "build" and "tools". The first two are relatively
+ uninteresting, so we'll focus on the remaining pair. The "build" component
+ provides classes necessary to declare targets, determine which properties
+ should be used for their building, and for creating the dependency
+ graph. The "tools" component provides user-visible functionality. It
+ mostly allows to declare specific kind of main targets, and declare
+ avaiable tools, which are then used when creating the dependency graph.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recipies/site-config.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="arch/build.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/arch/build.html b/doc/html/bbv2/arch/build.html
new file mode 100644
index 0000000000..d9a211f58e
--- /dev/null
+++ b/doc/html/bbv2/arch/build.html
@@ -0,0 +1,196 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>The build layer</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../arch.html" title="Appendix B. Boost.Build v2 architecture">
+<link rel="prev" href="../arch.html" title="Appendix B. Boost.Build v2 architecture">
+<link rel="next" href="tools.html" title="The tools layer">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../arch.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="tools.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.arch.build"></a>The build layer</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="build.html#bbv2.arch.metatargets">Metatargets</a></span></dt>
+<dt><span class="section"><a href="build.html#bbv2.arch.virtual">Virtual targets</a></span></dt>
+<dt><span class="section"><a href="build.html#bbv2.arch.properties"></a></span></dt>
+</dl></div>
+<p>The build layer has just four main parts -- metatargets (abstract targets),
+ virtual targets, generators and properties.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Metatargets (see the "targets.jam" module) represent
+ all the user-defined entities which can be built. The "meta" prefix
+ signify that they don't really corrspond to files -- depending of
+ build request, they can produce different set of
+ files. Metatargets are created when Jamfiles are loaded. Each
+ metagarget has a <code class="computeroutput">generate</code> method which is given a
+ property set and produces virtual targets for the passed properties.
+ </p></li>
+<li><p>Virtual targets (see the "virtual-targets.jam"
+ module) correspond to the atomic things which can be updated --
+ most typically files.
+ </p></li>
+<li><p>Properties are just (name, value) pairs, specified
+ by the user and describing how the targets should be
+ built. Properties are stored using the <code class="computeroutput">property-set</code> class.
+ </p></li>
+<li><p>Generators are the objects which encapsulate tools
+ -- they can take a list of source virtual targets and produce new
+ virtual targets from them.
+ </p></li>
+</ul></div>
+<p>The build process includes those steps:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>Top-level code calls the <code class="computeroutput">generate</code>
+ method of a metatarget with some properties. </p></li>
+<li><p>The metatarget combines the requested properties
+ with requirements and passes the result, together with the list
+ of sources, to the <code class="computeroutput">generators.construct</code>
+ function</p></li>
+<li><p>A generator appropriate for the build properties is
+ selected and its <code class="computeroutput">run</code> method is
+ called. The method returns a list of virtual targets
+ </p></li>
+<li><p>The targets are returned to the top level code. They
+ are converted into bjam targets (via
+ <code class="computeroutput">virtual-target.actualize</code>) and passed to bjam for building.
+ </p></li>
+</ol></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.arch.metatargets"></a>Metatargets</h3></div></div></div>
+<p>There are several classes derived from "abstract-target". The
+ "main-target" class represents top-level main target, the "project-target"
+ acts like container for all main targets, and "basic-target" class is a
+ base class for all further target types.
+ </p>
+<p>Since each main target can have several alternatives, all top-level
+ target objects are just containers, referring to "real" main target
+ classes. The type is that container is "main-target". For example, given:
+</p>
+<pre class="programlisting">
+alias a ;
+lib a : a.cpp : &lt;toolset&gt;gcc ;
+</pre>
+<p>
+ we would have one-top level instance of "main-target-class", which will
+ contain one instance of "alias-target-class" and one instance of
+ "lib-target-class". The "generate" method of "main-target" decides
+ which of the alternative should be used, and call "generate" on the
+ corresponding instance.
+ </p>
+<p>Each alternative is a instance of a class derived from
+ "basic-target". The "basic-target.generate" does several things that are
+ always should be done:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Determines what properties should be used for building the
+ target. This includes looking at requested properties, requirements,
+ and usage requirements of all sources.</p></li>
+<li><p>Builds all sources</p></li>
+<li><p>Computes the usage requirements which should be passes back.</p></li>
+</ul></div>
+<p>
+ For the real work of constructing virtual target, a new method
+ "construct" is called.
+ </p>
+<p>The "construct" method can be implemented in any way by classes
+ derived from "basic-target", but one specific derived class plays the
+ central role -- "typed-target". That class holds the desired type of file
+ to be produces, and calls the generators modules to do the job.
+ </p>
+<p>This means that a specific metatarget subclass may avoid using
+ generators at all. However, this is deprecated and we're trying to
+ eliminate all such subsclasses at the moment.
+ </p>
+<p>Note that the <code class="filename">build/targets.jam</code> file contains
+ an UML diagram which might help.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.arch.virtual"></a>Virtual targets</h3></div></div></div>
+<p>Virtual targets correspond to the atomic things which can be
+ updated. Each virtual target can be assigned an updating action --
+ instance of the <code class="computeroutput">action</code> class. The action class, in
+ turn, contains a list of source targets, properties, and a name of
+ bjam action block which should be executed.
+ </p>
+<p>We try hard to never create equal instances of the
+ <code class="computeroutput">virtual-target</code> class. Each code which creates virtual
+ targets passes them though the <code class="computeroutput">virtual-target.register</code>
+ function, which detects if a target with the same name, sources, and
+ properties was created. In that case, existing target is returned.
+ </p>
+<p>When all virtual targets are produced, they are
+ "actualized". This means that the real file names are computed, and
+ the commands that should be run are generated. This is done by the
+ <code class="computeroutput">virtual-target.actualize</code> method and the
+ <code class="computeroutput">action.actualize</code> methods. The first is conceptually
+ simple, while the second need additional explanation. The commands
+ in bjam are generated in two-stage process. First, a rule with the
+ appropriate name (for example
+ "gcc.compile") is called and is given the names of targets. The rule
+ sets some variables, like "OPTIONS". After that, the command string
+ is taken, and variable are substitutes, so use of OPTIONS inside the
+ command string become the real compile options.
+ </p>
+<p>Boost.Build added a third stage to simplify things. It's now
+ possible to automatically convert properties to appropriate assignments to
+ variables. For example, &lt;debug-symbols&gt;on would add "-g" to the
+ OPTIONS variable, without requiring to manually add this logic to
+ gcc.compile. This functionality is part of the "toolset" module.
+ </p>
+<p>Note that the <code class="filename">build/virtual-targets.jam</code> file
+ contains an UML diagram which might help.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"></div>
+<p>Above, we noted that metatargets are built with a set of
+ properties. That set is represented with the
+ <code class="computeroutput">property-set</code> class. An important point is that handling
+ of property sets can get very expensive. For that reason, we make
+ sure that for each set of (name, value) pairs only one
+ <code class="computeroutput">property-set</code> instance is created. The
+ <code class="computeroutput">property-set</code> uses extensive caching for all operation,
+ so most work is avoided. The <code class="computeroutput">property-set.create</code> is the
+ factory function which should be used to create instances of the
+ <code class="computeroutput">property-set</code> class.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../arch.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="tools.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/arch/targets.html b/doc/html/bbv2/arch/targets.html
new file mode 100644
index 0000000000..63dcf68477
--- /dev/null
+++ b/doc/html/bbv2/arch/targets.html
@@ -0,0 +1,396 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Targets</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../arch.html" title="Appendix B. Boost.Build v2 architecture">
+<link rel="prev" href="tools.html" title="The tools layer">
+<link rel="next" href="../../who_s_using_boost_.html" title="Who's Using Boost?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tools.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="../../who_s_using_boost_.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.arch.targets"></a>Targets</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="targets.html#bbv2.arch.depends">Dependency scanning</a></span></dt></dl></div>
+<p>NOTE: THIS SECTION IS NOT EXPECTED TO BE READ!
+ There are two user-visible kinds of targets in Boost.Build.
+ First are "abstract" &#8212; they correspond to things declared
+ by user, for example, projects and executable files. The primary
+ thing about abstract target is that it's possible to request them
+ to be build with a particular values of some properties. Each
+ combination of properties may possible yield different set of
+ real file, so abstract target do not have a direct correspondence
+ with files.</p>
+<p>File targets, on the contary, are associated with concrete
+ files. Dependency graphs for abstract targets with specific
+ properties are constructed from file targets. User has no was to
+ create file targets, however it can specify rules that detect
+ file type for sources, and also rules for transforming between
+ file targets of different types. That information is used in
+ constructing dependency graph, as desribed in the "next section".
+ [ link? ] <span class="bold"><strong>Note:</strong></span>File targets are not
+ the same as targets in Jam sense; the latter are created from
+ file targets at the latest possible moment. <span class="bold"><strong>Note:</strong></span>"File
+ target" is a proposed name for what we call virtual targets. It
+ it more understandable by users, but has one problem: virtual
+ targets can potentially be "phony", and not correspond to any
+ file.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.arch.depends"></a>Dependency scanning</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="targets.html#id1709744">Support for different scanning algorithms</a></span></dt>
+<dt><span class="section"><a href="targets.html#id1709753">Ability to scan the same file several times</a></span></dt>
+<dt><span class="section"><a href="targets.html#id1709788">Proper detection of dependencies on generated files.</a></span></dt>
+<dt><span class="section"><a href="targets.html#id1709921">Proper detection of dependencies from generated files</a></span></dt>
+</dl></div>
+<p>Dependency scanning is the process of finding implicit
+ dependencies, like "#include" statements in C++. The requirements
+ for right dependency scanning mechanism are:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Support for different scanning algorithms. C++ and XML have
+ quite different syntax for includes and rules for looking up
+ included files.
+ </li>
+<li>
+ Ability to scan the same file several times. For example,
+ single C++ file can be compiled with different include
+ paths.
+ </li>
+<li>
+ Proper detection of dependencies on generated files.
+ </li>
+<li>
+ Proper detection of dependencies from generated file.
+ </li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1709744"></a>Support for different scanning algorithms</h4></div></div></div>
+<p>Different scanning algorithm are encapsulated by objects
+ called "scanners". Please see the documentation for "scanner"
+ module for more details.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1709753"></a>Ability to scan the same file several times</h4></div></div></div>
+<p>As said above, it's possible to compile a C++ file twice, with
+ different include paths. Therefore, include dependencies for
+ those compilations can be different. The problem is that bjam
+ does not allow several scans of the same target.</p>
+<p>The solution in Boost.Build is straigtforward. When a virtual
+ target is converted to bjam target (via
+ <code class="literal">virtual-target.actualize</code> method), we specify the scanner
+ object to be used. The actualize method will create different
+ bjam targets for different scanners.</p>
+<p>All targets with specific scanner are made dependent on target
+ without scanner, which target is always created. This is done in
+ case the target is updated. The updating action will be
+ associated with target without scanner, but if sources for that
+ action are touched, all targets &#8212; with scanner and without
+ should be considered outdated.</p>
+<p>For example, assume that "a.cpp" is compiled by two compilers
+ with different include path. It's also copied into some install
+ location. In turn, it's produced from "a.verbatim". The
+ dependency graph will look like:</p>
+<pre class="programlisting">
+a.o (&lt;toolset&gt;gcc) &lt;--(compile)-- a.cpp (scanner1) ----+
+a.o (&lt;toolset&gt;msvc) &lt;--(compile)-- a.cpp (scanner2) ----|
+a.cpp (installed copy) &lt;--(copy) ----------------------- a.cpp (no scanner)
+ ^
+ |
+ a.verbose --------------------------------+
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1709788"></a>Proper detection of dependencies on generated files.</h4></div></div></div>
+<p>This requirement breaks down to the following ones.</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ If when compiling "a.cpp" there's include of "a.h", the
+ "dir" directory is in include path, and a target called "a.h"
+ will be generated to "dir", then bjam should discover the
+ include, and create "a.h" before compiling "a.cpp".
+ </li>
+<li>
+ Since almost always Boost.Build generates targets to a
+ "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.
+ </li>
+</ol></div>
+<p>The first requirement means that when determining what "a.h"
+ means, when found in "a.cpp", we have to iterate over all
+ directories in include paths, checking for each one:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ If there's file "a.h" in that directory, or
+ </li>
+<li>
+ If there's a target called "a.h", which will be generated
+ to that directory.
+ </li>
+</ol></div>
+<p>Classic Jam has built-in facilities for point (1) above, but
+ that's not enough. It's hard to implement the right semantic
+ without builtin support. For example, we could try to check if
+ there's targer called "a.h" somewhere in dependency graph, and
+ add a dependency to it. The problem is that without search in
+ include path, the semantic may be incorrect. For example, one can
+ have an action which generated some "dummy" header, for system
+ which don't have the native one. Naturally, we don't want to
+ depend on that generated header on platforms where native one is
+ included.</p>
+<p>There are two design choices for builtin support. Suppose we
+ have files a.cpp and b.cpp, and each one includes header.h,
+ generated by some action. Dependency graph created by classic jam
+ would look like:</p>
+<pre class="programlisting">
+a.cpp -----&gt; &lt;scanner1&gt;header.h [search path: d1, d2, d3]
+
+
+ &lt;d2&gt;header.h --------&gt; header.y
+ [generated in d2]
+
+b.cpp -----&gt; &lt;scanner2&gt;header.h [ search path: d1, d2, d4]
+</pre>
+<p>
+In this case, Jam thinks all header.h target are not
+realated. The right dependency graph might be:
+
+</p>
+<pre class="programlisting">
+a.cpp ----
+ \
+ \
+ &gt;----&gt; &lt;d2&gt;header.h --------&gt; header.y
+ / [generated in d2]
+ /
+b.cpp ----
+</pre>
+<p>
+
+or
+
+</p>
+<pre class="programlisting">
+a.cpp -----&gt; &lt;scanner1&gt;header.h [search path: d1, d2, d3]
+ |
+ (includes)
+ V
+ &lt;d2&gt;header.h --------&gt; header.y
+ [generated in d2]
+ ^
+ (includes)
+ |
+b.cpp -----&gt; &lt;scanner2&gt;header.h [ search path: d1, d2, d4]
+</pre>
+<p>
+The first alternative was used for some time. The problem
+however is: what include paths should be used when scanning
+header.h? The second alternative was suggested by Matt Armstrong.
+It has similiar effect: add targets which depend on
+&lt;scanner1&gt;header.h will also depend on &lt;d2&gt;header.h.
+But now we have two different target with two different scanners,
+and those targets can be scanned independently. The problem of
+first alternative is avoided, so the second alternative is
+implemented now.
+ </p>
+<p>The second sub-requirements is that targets generated to "bin"
+ directory are handled as well. Boost.Build implements
+ semi-automatic approach. When compiling C++ files the process
+ is:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ The main target to which compiled file belongs is found.
+ </li>
+<li>
+ All other main targets that the found one depends on are
+ found. Those include main target which are used as sources, or
+ present as values of "dependency" features.
+ </li>
+<li>
+ All directories where files belonging to those main target
+ will be generated are added to the include path.
+ </li>
+</ol></div>
+<p>After this is done, dependencies are found by the approach
+ explained previously.</p>
+<p>Note that if a target uses generated headers from other main
+ target, that main target should be explicitly specified as
+ dependency property. It would be better to lift this requirement,
+ but it seems not very problematic in practice.</p>
+<p>For target types other than C++, adding of include paths must
+ be implemented anew.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1709921"></a>Proper detection of dependencies from generated files</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="targets.html#id1710022">File targets</a></span></dt>
+<dt><span class="section"><a href="targets.html#id1710055">Target paths</a></span></dt>
+</dl></div>
+<p>Suppose file "a.cpp" includes "a.h" and both are generated by
+ some action. Note that classic jam has two stages. In first stage
+ dependency graph graph is build and actions which should be run
+ are determined. In second stage the actions are executed.
+ Initially, neither file exists, so the include is not found. As
+ the result, jam might attempt to compile a.cpp before creating
+ a.h, and compilation will fail.</p>
+<p>The solution in Boost.Jam is to perform additional dependency
+ scans after targets are updated. This break separation between
+ build stages in jam &#8212; which some people consider a good
+ thing &#8212; but I'm not aware of any better solution.</p>
+<p>In order to understand the rest of this section, you better
+ read some details about jam dependency scanning, available
+ <a href="http://public.perforce.com:8080/@md=d&amp;cd=//public/jam/src/&amp;ra=s&amp;c=kVu@//2614?ac=10" target="_top">
+ at this link</a>.</p>
+<p>Whenever a target is updated, Boost.Jam rescans it for
+ includes. Consider this graph, created before any actions are
+ run.</p>
+<pre class="programlisting">
+A -------&gt; C ----&gt; C.pro
+ /
+B --/ C-includes ---&gt; D
+</pre>
+<p>
+Both A and B have dependency on C and C-includes (the latter
+dependency is not shown). Say during building we've tried to create
+A, then tried to create C and successfully created C.
+ </p>
+<p>In that case, the set of includes in C might well have
+ changed. We do not bother to detect precisely which includes were
+ added or removed. Instead we create another internal node
+ C-includes-2. Then we determine what actions should be run to
+ update the target. In fact this mean that we perform logic of
+ first stage while already executing stage.</p>
+<p>After actions for C-includes-2 are determined, we add
+ C-includes-2 to the list of A's dependents, and stage 2 proceeds
+ as usual. Unfortunately, we can't do the same with target B,
+ since when it's not visited, C target does not know B depends on
+ it. So, we add a flag to C which tells and it was rescanned. When
+ visiting B target, the flag is notices and C-includes-2 will be
+ added to the list of B's dependencies.</p>
+<p>Note also that internal nodes are sometimes updated too.
+ Consider this dependency graph:</p>
+<pre class="programlisting">
+a.o ---&gt; a.cpp
+ a.cpp-includes --&gt; a.h (scanned)
+ a.h-includes ------&gt; a.h (generated)
+ |
+ |
+ a.pro &lt;-------------------------------------------+
+</pre>
+<p>Here, out handling of generated headers come into play. Say
+ that a.h exists but is out of date with respect to "a.pro", then
+ "a.h (generated)" and "a.h-includes" will be marking for
+ updating, but "a.h (scanned)" won't be marked. We have to rescan
+ "a.h" file after it's created, but since "a.h (generated)" has no
+ scanner associated with it, it's only possible to rescan "a.h"
+ after "a.h-includes" target was updated.</p>
+<p>Tbe above consideration lead to decision that we'll rescan a
+ target whenever it's updated, no matter if this target is
+ internal or not.</p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p>
+ The remainder of this document is not indended to be read at
+ all. This will be rearranged in future.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1710022"></a>File targets</h5></div></div></div>
+<p>
+ As described above, file targets corresponds
+ to files that Boost.Build manages. User's may be concerned about
+ file targets in three ways: when declaring file target types,
+ when declaring transformations between types, and when
+ determining where file target will be placed. File targets can
+ also be connected with actions, that determine how the target is
+ created. Both file targets and actions are implemented in the
+ <code class="literal">virtual-target</code> module.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1710041"></a>Types</h6></div></div></div>
+<p>A file target can be given a file, which determines
+ what transformations can be applied to the file. The
+ <code class="literal">type.register</code> rule declares new types. File type can
+ also be assigned a scanner, which is used to find implicit
+ dependencies. See "dependency scanning" [ link? ] below.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1710055"></a>Target paths</h5></div></div></div>
+<p>To distinguish targets build with different properties, they
+ are put in different directories. Rules for determining target
+ paths are given below:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ All targets are placed under directory corresponding to the
+ project where they are defined.
+ </li>
+<li>
+ Each non free, non incidental property cause an additional
+ element to be added to the target path. That element has the
+ form <code class="literal">&lt;feature-name&gt;-&lt;feature-value&gt;</code> for
+ ordinary features and <code class="literal">&lt;feature-value&gt;</code> for
+ implicit ones. [Note about composite features].
+ </li>
+<li>
+ If the set of free, non incidental properties is different
+ from the set of free, non incidental properties for the project
+ in which the main target that uses the target is defined, a
+ part of the form <code class="literal">main_target-&lt;name&gt;</code> is added to
+ the target path. <span class="bold"><strong>Note:</strong></span>It would be nice to completely
+ track free features also, but this appears to be complex and
+ not extremely needed.
+ </li>
+</ol></div>
+<p>For example, we might have these paths:</p>
+<pre class="programlisting">
+debug/optimization-off
+debug/main-target-a
+</pre>
+</div>
+</div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tools.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="../../who_s_using_boost_.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/arch/tools.html b/doc/html/bbv2/arch/tools.html
new file mode 100644
index 0000000000..e585e7c6e0
--- /dev/null
+++ b/doc/html/bbv2/arch/tools.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>The tools layer</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../arch.html" title="Appendix B. Boost.Build v2 architecture">
+<link rel="prev" href="build.html" title="The build layer">
+<link rel="next" href="targets.html" title="Targets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="build.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="targets.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.arch.tools"></a>The tools layer</h2></div></div></div>
+<p>Write me!</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="build.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../arch.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="targets.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extender.html b/doc/html/bbv2/extender.html
new file mode 100644
index 0000000000..405a526c14
--- /dev/null
+++ b/doc/html/bbv2/extender.html
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 25. Extender Manual</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="advanced/differences_to_v1.html" title="Differences to Boost.Build V1">
+<link rel="next" href="extending/targets.html" title="Target types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="advanced/differences_to_v1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="extending/targets.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.extender"></a>Chapter 25. Extender Manual</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="extender.html#bbv2.extender.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="extending/targets.html">Target types</a></span></dt>
+<dd><dl><dt><span class="section"><a href="extending/targets.html#bbv2.extending.scanners">Scanners</a></span></dt></dl></dd>
+<dt><span class="section"><a href="extending/tools.html">Tools and generators</a></span></dt>
+<dt><span class="section"><a href="extending/features.html">Features</a></span></dt>
+<dt><span class="section"><a href="extending/rules.html">Main target rules</a></span></dt>
+<dt><span class="section"><a href="extending/toolset_modules.html">Toolset modules</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extender.intro"></a>Introduction</h2></div></div></div>
+<p>This document explains how to extend Boost.Build to accomodate
+ your local requirements. Let's start with a simple but
+ realistic example.</p>
+<p>Say you're writing an application that generates C++ code. If
+ you ever did this, you know that it's not nice. Embedding large
+ portions of C++ code in string literals is very awkward. A much
+ better solution is:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Write the template of the code to be generated, leaving
+ placeholders at the points that will change
+ </li>
+<li>
+ Access the template in your application and replace
+ placeholders with appropriate text.
+ </li>
+<li>Write the result.</li>
+</ol></div>
+<p>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 class="computeroutput">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.</p>
+<p>Let's see what Boost.Build can do.</p>
+<p>First off, Boost.Build has no idea about "verbatim files". So,
+ you must register a new target type. The following code does
+ it:</p>
+<pre class="programlisting">
+import type ;
+type.register VERBATIM : vrb ;
+</pre>
+<p>The first parameter to
+ <code class="computeroutput">type.register</code> 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
+ <code class="filename">code.vrb</code> in a list of sources, it knows that it's of type
+ <code class="computeroutput">VERBATIM</code>.</p>
+<p>Next, you tell Boost.Build that the verbatim files can be
+ transformed into C++ files in one build step. A
+ <em class="firstterm">generator</em> is a template for a build step that
+ transforms targets of one type (or set of types) into another. Our
+ generator will be called <code class="computeroutput">verbatim.inline-file</code>; it
+ transforms <code class="computeroutput">VERBATIM</code> files into <code class="computeroutput">CPP</code> files:
+
+</p>
+<pre class="programlisting">
+import generators ;
+generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
+</pre>
+<p>Lastly, you have to inform Boost.Build about the shell
+ commands used to make that transformation. That's done with an
+ <code class="computeroutput">actions</code> declaration.
+
+</p>
+<pre class="programlisting">
+actions inline-file
+{
+ "./inline-file.py" $(&lt;) $(&gt;)
+}
+</pre>
+<p>Now, we're ready to tie it all together. Put all the code
+ above in file <code class="filename">verbatim.jam</code>, add <code class="computeroutput">import verbatim ;</code>
+ to <code class="filename">project-root.jam</code>, and it's possible to write
+ the following in Jamfile:</p>
+<pre class="programlisting">
+exe codegen : codegen.cpp class_template.verbatim usage.verbatim ;
+</pre>
+<p>
+The verbatim files will be automatically converted into C++
+and linked it.
+ </p>
+<p>In the subsequent sections, we will extend this example, and review
+ all the mechanisms in detail. The complete code is available in <a href="../../../tools/build/v2/example/customization" target="_top">example/customization</a>
+ directory.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="advanced/differences_to_v1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="extending/targets.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extending/features.html b/doc/html/bbv2/extending/features.html
new file mode 100644
index 0000000000..76e9fa5490
--- /dev/null
+++ b/doc/html/bbv2/extending/features.html
@@ -0,0 +1,262 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Features</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="prev" href="tools.html" title="Tools and generators">
+<link rel="next" href="rules.html" title="Main target rules">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tools.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="rules.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extending.features"></a>Features</h2></div></div></div>
+<p>
+ Often, we need to control the options passed the invoked tools. This
+ is done with features. Consider an example:
+</p>
+<pre class="programlisting">
+# Declare a new free feature
+import feature : feature ;
+feature verbatim-options : : free ;
+
+# Cause the value of the 'verbatim-options' feature to be
+# available as 'OPTIONS' variable inside verbatim.inline-file
+import toolset : flags ;
+flags verbatim.inline-file OPTIONS &lt;verbatim-options&gt; ;
+
+# Use the "OPTIONS" variable
+actions inline-file
+{
+ "./inline-file.py" $(OPTIONS) $(&lt;) $(&gt;)
+}
+</pre>
+<p>
+ We first define a new feature. Then, the <code class="computeroutput">flags</code> invocation
+ says that whenever verbatin.inline-file action is run, the value of
+ the <code class="computeroutput">verbatim-options</code> feature will be added to the
+ <code class="computeroutput">OPTIONS</code> variable, an can be used inside the action body.
+ You'd need to consult online help (--help) to find all the features of
+ the <code class="computeroutput">toolset.flags</code> rule.
+ </p>
+<p>
+ Although you can define any set of features and interpret their values
+ in any way, Boost.Build suggests the following coding standard for
+ designing features.
+ </p>
+<p>Most features should have a fixed set of values that is portable
+ (tool neutral) across the class of tools they are designed to work
+ with. The user does not have to adjust the values for a exact tool. For
+ example, <code class="computeroutput">&lt;optimization&gt;speed</code> has the same meaning for
+ all C++ compilers and the user does not have to worry about the exact
+ options passed to the compiler's command line.
+ </p>
+<p>
+ Besides such portable features there are special 'raw' features that
+ allow the user to pass any value to the command line parameters for a
+ particular tool, if so desired. For example, the
+ <code class="computeroutput">&lt;cxxflags&gt;</code> feature allows you to pass any command line
+ options to a C++ compiler. The <code class="computeroutput">&lt;include&gt;</code> feature
+ allows you to pass any string preceded by <code class="computeroutput">-I</code> and the interpretation
+ is tool-specific. (See <a href="../faq/external.html" title="Can I get output of external program as a variable in a Jamfile?
+ ">the section called &#8220;Can I get output of external program as a variable in a Jamfile?
+ &#8221;</a> for an example of very smart usage of that
+ feature). Of course one should always strive to use portable
+ features, but these are still be provided as a backdoor just to make
+ sure Boost.Build does not take away any control from the user.
+ </p>
+<p>
+ Using portable features is a good idea because:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>When a portable feature is given a fixed set of
+ values, you can build your project with two different
+ settings of the feature and Boost.Build will automatically
+ use two different directories for generated files.
+ Boost.Build does not try to separate targets built with
+ different raw options.
+ </p></li>
+<li><p>Unlike with &#8220;raw&#8221; features, you don't need to use
+ specific command-line flags in your Jamfile, and it will be
+ more likely to work with other tools.
+ </p></li>
+</ul></div>
+<h3>
+<a name="id1706749"></a>Steps for adding a feauture</h3>
+<p>Adding a feature requires three steps:
+
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>Declaring a feature. For that, the "feature.feature"
+ rule is used. You have to decide on the set of <a href="../reference/definitions.html#bbv2.reference.features.attributes" title="Feature Attributes">feature
+ attributes</a>:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>if a feature has several values and
+ significally affects the build, make it &#8220;propagated,&#8221; so that the
+ whole project is built with the same value by
+ default</p></li>
+<li><p>if a feature does not have a fixed
+ list of values, it must be &#8220;free.&#8221; For example, the
+ <code class="computeroutput">include</code> feature is a free
+ feature.</p></li>
+<li><p>if a feature is used to refer to a
+ path relative to the Jamfile, it must be a &#8220;path&#8221;
+ feature. <code class="computeroutput">include</code> is also a path
+ feature.</p></li>
+<li><p>if feature is used to refer to some target, it
+ must be a &#8220;dependency&#8221; feature. </p></li>
+</ul></div>
+</li>
+<li><p>Representing the feature value in a
+ target-specific variable. Build actions are command
+ templates modified by Boost.Jam variable expansions. The
+ <code class="computeroutput">toolset.flags</code> rule sets a target-specific
+ variable to the value of a feature.</p></li>
+<li><p>Using the variable. The variable set in step 2 can
+ be used in a build action to form command parameters or
+ files.</p></li>
+</ol></div>
+<h3>
+<a name="id1706828"></a>Another example</h3>
+<p>Here's another example.
+ Let's see how we can make a feature that refers to a target. For example,
+ when linking dynamic libraries on windows, one sometimes needs to specify
+ "DEF file", telling what functions should be exported. It would be nice to
+ use this file like this:
+</p>
+<pre class="programlisting">
+ lib a : a.cpp : &lt;def-file&gt;a.def ;
+</pre>
+<p>
+ Actually, this feature is already supported, but anyway...
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>Since the feature refers to a target, it must be "dependency".
+</p>
+<pre class="programlisting">
+feature def-file : : free dependency ;
+</pre>
+</li>
+<li>
+<p>One of the toolsets that cares about
+
+ DEF files is msvc. The following line should be added to it.
+ </p>
+<pre class="programlisting">
+flags msvc.link DEF_FILE &lt;def-file&gt; ;
+</pre>
+</li>
+<li>
+<p>Since the DEF_FILE variable is not used by the
+msvc.link action,
+
+we need to modify it to be:
+
+</p>
+<pre class="programlisting">
+actions link bind DEF_FILE
+{
+ $(.LD) .... /DEF:$(DEF_FILE) ....
+}
+</pre>
+<p> Note the <code class="computeroutput">bind DEF_FILE</code> part. It tells
+ bjam to translate the internal target name in
+ <code class="varname">DEF_FILE</code> to a corresponding filename in
+ the <code class="computeroutput">link</code> action. Without it the expansion of
+ <code class="computeroutput">$(DEF_FILE)</code> would be a strange symbol that is
+ not likely to make sense for the linker.
+ </p>
+<p>
+ We've almost done, but should stop for a small workaround. Add the following
+ code to msvc.jam
+
+</p>
+<pre class="programlisting">
+rule link
+{
+ DEPENDS $(&lt;) : [ on $(&lt;) return $(DEF_FILE) ] ;
+}
+</pre>
+<p>
+
+ This is needed to accomodate some bug in bjam, which hopefully
+ will be fixed one day.
+ </p>
+</li>
+</ol></div>
+<h3>
+<a name="id1706925"></a>Variants and composite features.</h3>
+<p>Sometimes you want to create a shorcut for some set of
+ features. For example, <code class="computeroutput">release</code> is a value of
+ <code class="computeroutput">&lt;variant&gt;</code> and is a shortcut for a set of features.
+ </p>
+<p>It is possible to define your own build variants. For example:
+</p>
+<pre class="programlisting">
+variant crazy : &lt;optimization&gt;speed &lt;inlining&gt;off
+ &lt;debug-symbols&gt;on &lt;profiling&gt;on ;
+</pre>
+<p>
+ will define a new variant with the specified set of properties. You
+ can also extend an existing variant:
+</p>
+<pre class="programlisting">
+variant super_release : release : &lt;define&gt;USE_ASM ;
+</pre>
+<p>
+ In this case, <code class="computeroutput">super_release</code> will expand to all properties
+ specified by <code class="computeroutput">release</code>, and the additional one you've specified.
+ </p>
+<p>You are not restricted to using the <code class="computeroutput">variant</code> feature
+ only.
+
+ Here's example that defines a brand new feature:
+</p>
+<pre class="programlisting">
+feature parallelism : mpi fake none : composite link-incompatible ;
+feature.compose &lt;parallelism&gt;mpi : &lt;library&gt;/mpi//mpi/&lt;parallelism&gt;none ;
+feature.compose &lt;parallelism&gt;fake : &lt;library&gt;/mpi//fake/&lt;parallelism&gt;none ;
+</pre>
+<p>
+ This will allow you to specify value of feature
+ <code class="computeroutput">parallelism</code>, which will expand to link to the necessary
+ library.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tools.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="rules.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extending/rules.html b/doc/html/bbv2/extending/rules.html
new file mode 100644
index 0000000000..95f8459899
--- /dev/null
+++ b/doc/html/bbv2/extending/rules.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Main target rules</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="prev" href="features.html" title="Features">
+<link rel="next" href="toolset_modules.html" title="Toolset modules">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="features.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="toolset_modules.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extending.rules"></a>Main target rules</h2></div></div></div>
+<p>
+ A main target rule (e.g &#8220;<code class="computeroutput">exe</code>&#8221;
+ Or &#8220;<code class="computeroutput">lib</code>&#8221;) creates a top-level target. It's quite likely that you'll want to declare your own and
+ there are two ways to do that.
+ </p>
+<p><a name="bbv2.extending.rules.main-type"></a>The first way applies when
+
+ your target rule should just produce a target of specific type. In that case, a
+ rule is already defined for you! When you define a new type, Boost.Build
+ automatically defines a corresponding rule. The name of the rule is
+ obtained from the name of the type, by downcasing all letters and
+ replacing underscores with dashes.
+
+ For example, if you create a module
+ <code class="filename">obfuscate.jam</code> containing:
+
+</p>
+<pre class="programlisting">
+import type ;
+type.register OBFUSCATED_CPP : ocpp ;
+
+import generators ;
+generators.register-standard obfuscate.file : CPP : OBFUSCATED_CPP ;
+</pre>
+<p>
+ and import that module, you'll be able to use the rule "obfuscated-cpp"
+ in Jamfiles, which will convert source to the OBFUSCATED_CPP type.
+ </p>
+<p>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:
+</p>
+<pre class="programlisting">
+lib codegen : [ glob *.cpp ] ;
+</pre>
+<p>
+ but if you want to make it even simpler, you could add the following
+ definition to the <code class="filename">project-root.jam</code> file:
+</p>
+<pre class="programlisting">
+rule glib ( name : extra-sources * : requirements * )
+{
+ lib $(name) : [ glob *.cpp ] $(extra-sources) : $(requirements) ;
+}
+</pre>
+<p>
+which would allow you to reduce the Jamfile to
+</p>
+<pre class="programlisting">
+glib codegen ;
+</pre>
+<p>
+ Note that because you can associate a custom generator with a target
+ type, the logic of building can be rather compiler.
+
+ For example, the
+ <code class="computeroutput">boostbook</code> module declares a target type
+ <code class="computeroutput">BOOSTBOOK_MAIN</code> and a custom generator for that
+ type. You can use that as example if your main target rule is
+ non-trivial.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="features.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="toolset_modules.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extending/targets.html b/doc/html/bbv2/extending/targets.html
new file mode 100644
index 0000000000..18a6b06736
--- /dev/null
+++ b/doc/html/bbv2/extending/targets.html
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Target types</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="prev" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="next" href="tools.html" title="Tools and generators">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../extender.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="tools.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extending.targets"></a>Target types</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="targets.html#bbv2.extending.scanners">Scanners</a></span></dt></dl></div>
+<p>The first thing we did in the <a href="../extender.html#bbv2.extender.intro" title="Introduction">intruduction</a> was declaring a
+ new target type:
+</p>
+<pre class="programlisting">
+import type ;
+type.register VERBATIM : verbatim ;
+</pre>
+<p>
+ The type is the most important property of a target. Boost.Build can
+ automatically generate necessary build actions only because you
+ specify the desired type (using the different main target rules), and
+ because Boost.Build can guess the type of sources from their
+ extensions.
+ </p>
+<p>The first two parameters for the <code class="computeroutput">type.register</code> rule
+ are the name of new type and the list of extensions associated with
+ it. A file with an extension from the list will have the given target
+ type. In the case where a target of the declared type is generated
+ from other sources, the first specified extension will be used.
+ </p>
+<p>Sometimes you want to change the suffix used for generated targets
+ depending on build properties, such as toolset. For example, some compiler
+ uses extension <code class="literal">elf</code> for executable files. You can use the
+ <code class="computeroutput">type.set-generated-target-suffix</code> rule:
+</p>
+<pre class="programlisting">
+type.set-generated-target-suffix EXE : &lt;toolset&gt;elf : elf ;
+</pre>
+<p>A new target type can be inherited from an existing one.
+</p>
+<pre class="programlisting">
+type.register PLUGIN : : SHARED_LIB ;
+</pre>
+<p>
+ The above code defines a new type derived from
+ <code class="computeroutput">SHARED_LIB</code>. Initially, the new type inherits all the
+ properties of the base type - in particular generators and suffix.
+ Typically, you'll change the new type in some way. For example, using
+ <code class="computeroutput">type.set-generated-target-suffix</code> you can set the suffix for
+ the new type. Or you can write special generator for the new type. For
+ example, it can generate additional metainformation for plugin.
+ In either way, the <code class="computeroutput">PLUGIN</code> type can be used whenever
+ <code class="computeroutput">SHARED_LIB</code> can. For example, you can directly link plugins
+ to an application.
+ </p>
+<p>A type can be defined as "main", in which case Boost.Build will
+ automatically declare a main target rule for building targets of that
+ type. More details can be found <a href="rules.html#bbv2.extending.rules.main-type">later</a>.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.extending.scanners"></a>Scanners</h3></div></div></div>
+<p>
+ Sometimes, a file can refer to other files via some include
+ mechanism. To make Boost.Build track dependencies to the included
+ files, you need to provide a scanner. The primary limitation is that
+ only one scanner can be assigned to a target type.
+ </p>
+<p>First, we need to declare a new class for the scanner:
+</p>
+<pre class="programlisting">
+class verbatim-scanner : common-scanner
+{
+ rule pattern ( )
+ {
+ return "//###include[ ]*\"([^\"]*)\"" ;
+ }
+}
+</pre>
+<p>
+ All the complex logic is in the <code class="computeroutput">common-scanner</code>
+ class, and you only need to override the method that returns
+ the regular expression to be used for scanning. The
+ paranthethis in the regular expression indicate which part
+ of the string is the name of the included file. Only the
+ first parenthesized group in the regular expression will be
+ recognized; if you can't express everything you want that
+ way, you can return multiple regular expressions, each of
+ which contains a parenthesized group to be matched.
+ </p>
+<p>After that, we need to register our scanner class:
+</p>
+<pre class="programlisting">
+scanner.register verbatim-scanner : include ;
+</pre>
+<p>
+ The value of the second parameter, in this case
+ <code class="computeroutput">include</code>, specifies the properties that contain the list
+ of paths that should be searched for the included files.
+ </p>
+<p>Finally, we assign the new scaner to the <code class="computeroutput">VERBATIM</code>
+ target type:
+</p>
+<pre class="programlisting">
+type.set-scanner VERBATIM : verbatim-scanner ;
+</pre>
+<p>
+ That's enough for scanning include dependencies.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../extender.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="tools.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extending/tools.html b/doc/html/bbv2/extending/tools.html
new file mode 100644
index 0000000000..0065bed50a
--- /dev/null
+++ b/doc/html/bbv2/extending/tools.html
@@ -0,0 +1,247 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tools and generators</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="prev" href="targets.html" title="Target types">
+<link rel="next" href="features.html" title="Features">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="targets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="features.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extending.tools"></a>Tools and generators</h2></div></div></div>
+<p>
+ This section will describe how Boost.Build can be extended to support
+ new tools.
+ </p>
+<p>For each additional tool, a Boost.Build object called generator
+ must be created. That object has specific types of targets that it
+ accepts an produces. Using that information, Boost.Build is able
+ to automatically invoke the generator. For example, if you declare a
+ generator that takes a target of the type <code class="literal">D</code> and
+ produces a target of the type <code class="literal">OBJ</code>, when placing a
+ file with extention <code class="literal">.d</code> in a list of sources will
+ cause Boost.Build to invoke your generator, and then to link the
+ resulting object file into an application. (Of course, this requires
+ that you specify that the <code class="literal">.d</code> extension corresponds
+ to the <code class="literal">D</code> type.)
+ </p>
+<p>Each generator should be an instance of a class derived from the
+ <code class="computeroutput">generator</code> class. In the simplest case, you don't need to
+ create a derived class, but simply create an instance of the
+ <code class="computeroutput">generator</code> class. Let's review the example we've seen in the
+ <a href="../extender.html#bbv2.extender.intro" title="Introduction">introduction</a>.
+ </p>
+<pre class="programlisting">
+import generators ;
+generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
+actions inline-file
+{
+ "./inline-file.py" $(&lt;) $(&gt;)
+}
+</pre>
+<p>We declare a standard generator, specifying its id, the source type
+ and the target type. When invoked, the generator will create a target
+ of type <code class="literal">CPP</code> with a source target of
+ type <code class="literal">VERBATIM</code> as the only source. But what command
+ will be used to actually generate the file? In bjam, actions are
+ specified using named "actions" blocks and the name of the action
+ block should be specified when creating targets. By convention,
+ generators use the same name of the action block as their own id. So,
+ in above example, the "inline-file" actions block will be use to
+ convert the source into the target.
+ </p>
+<p>
+ There are two primary kinds of generators: standard and composing,
+ which are registered with the
+ <code class="computeroutput">generators.register-standard</code> and the
+ <code class="computeroutput">generators.register-composing</code> rules, respectively. For
+ example:
+</p>
+<pre class="programlisting">
+generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
+generators.register-composing mex.mex : CPP LIB : MEX ;
+</pre>
+<p>
+ Standard generators take a <span class="emphasis"><em>single</em></span> source of type
+ <code class="computeroutput">VERBATIM</code> and produces a result. The second generator
+ takes any number of sources, which can have either the
+ <code class="computeroutput">CPP</code> or the <code class="computeroutput">LIB</code> type. Composing generators
+ are typically used for generating top-level target type. For example,
+ the first generator invoked when building an <code class="computeroutput">exe</code> target
+ is a composing generator corresponding to the proper linker.
+ </p>
+<p>You should also know about two specific function for registering
+ generators: <code class="computeroutput">generators.register-c-compiler</code> and
+ <code class="computeroutput">generators.register-linker</code>. The first sets up header
+ dependecy scanning for C files, and the seconds handles various
+ complexities like searched libraries. For that reason, you should always
+ use those functions when adding support for compilers and linkers.
+ </p>
+<p>(Need a note about UNIX)</p>
+<h3>
+<a name="id1706493"></a>Custom generator classes</h3>
+<p>The standard generators allows you to specify source and target
+ types, action, and a set of flags. If you need anything more complex,
+
+ you need to create a new generator class with your own logic. Then,
+ you have to create an instance of that class and register it. Here's
+ an example how you can create your own generator class:
+</p>
+<pre class="programlisting">
+class custom-generator : generator
+{
+ rule __init__ ( * : * )
+ {
+ generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
+ }
+
+}
+
+generators.register
+ [ new custom-generator verbatim.inline-file : VERBATIM : CPP ] ;
+</pre>
+<p>
+ This generator will work exactly like the
+ <code class="computeroutput">verbatim.inline-file</code> generator we've defined above, but
+ it's possible to customize the behaviour by overriding methods of the
+ <code class="computeroutput">generator</code> class.
+ </p>
+<p>There are two methods of interest. The <code class="computeroutput">run</code> method is
+ responsible for the overall process - it takes a number of source targets,
+ converts them the the right types, and creates the result. The
+ <code class="computeroutput">generated-targets</code> method is called when all sources are
+ converted to the right types to actually create the result.
+ </p>
+<p>The <code class="computeroutput">generated-target</code>
+ method can be overridden
+ when you want to add additional properties to the generated
+ targets or use additional sources. For a real-life example,
+ suppose you have a program analysis tool that should be given a
+ name of executable and the list of all sources. Naturally, you
+ don't want to list all source files manually. Here's how the
+ <code class="computeroutput">generated-target</code> method can find the list of
+ sources automatically:
+</p>
+<pre class="programlisting">
+class itrace-generator : generator {
+....
+ rule generated-targets ( sources + : property-set : project name ? )
+ {
+ local leaves ;
+ local temp = [ virtual-target.traverse $(sources[1]) : : include-sources ] ;
+ for local t in $(temp)
+ {
+ if ! [ $(t).action ]
+ {
+ leaves += $(t) ;
+ }
+ }
+ return [ generator.generated-targets $(sources) $(leafs)
+ : $(property-set) : $(project) $(name) ] ;
+ }
+}
+generators.register [ new itrace-generator nm.itrace : EXE : ITRACE ] ;
+</pre>
+<p>
+ The <code class="computeroutput">generated-targets</code> method will be called with a single
+ source target of type <code class="literal">EXE</code>. The call to
+ <code class="computeroutput">virtual-target.traverse</code> will return all targets the
+ executable depends on, and we further find files that are not
+ produced from anything.
+ The found targets are added to the sources.
+ </p>
+<p>The <code class="computeroutput">run</code> method can be overriden to completely
+ customize the way generator works. In particular, the conversion of
+ sources to the desired types can be completely customized. Here's
+ another real example. Tests for the Boost Python library usually
+ consist of two parts: a Python program and a C++ file. The C++ file is
+ compiled to Python extension that is loaded by the Python
+ program. But in the likely case that both files have the same name,
+ the created Python extension must be renamed. Otherwise, Python
+ program will import itself, not the extension. Here's how it can be
+ done:
+</p>
+<pre class="programlisting">
+rule run ( project name ? : property-set : sources * : multiple ? )
+{
+ local python ;
+ for local s in $(sources)
+ {
+ if [ $(s).type ] = PY
+ {
+ python = $(s) ;
+ }
+ }
+
+ local libs ;
+ for local s in $(sources)
+ {
+ if [ type.is-derived [ $(s).type ] LIB ]
+ {
+ libs += $(s) ;
+ }
+ }
+
+ local new-sources ;
+ for local s in $(sources)
+ {
+ if [ type.is-derived [ $(s).type ] CPP ]
+ {
+ local name = [ $(s).name ] ; # get the target's basename
+ if $(name) = [ $(python).name ]
+ {
+ name = $(name)_ext ; # rename the target
+ }
+ new-sources += [ generators.construct $(project) $(name) :
+ PYTHON_EXTENSION : $(property-set) : $(s) $(libs) ] ;
+ }
+ }
+
+ result = [ construct-result $(python) $(new-sources) : $(project) $(name)
+ : $(property-set) ] ;
+}
+</pre>
+<p>
+
+ First, we separate all source into python files, libraries and C++
+ sources. For each C++ source we create a separate Python extension by
+ calling <code class="computeroutput">generators.construct</code> and passing the C++ source
+ and the libraries. At this point, we also change the extension's name,
+ if necessary.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="targets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="features.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/extending/toolset_modules.html b/doc/html/bbv2/extending/toolset_modules.html
new file mode 100644
index 0000000000..a0c678e73c
--- /dev/null
+++ b/doc/html/bbv2/extending/toolset_modules.html
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Toolset modules</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../extender.html" title="Chapter 25. Extender Manual">
+<link rel="prev" href="rules.html" title="Main target rules">
+<link rel="next" href="../reference.html" title="Chapter 26. Detailed reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rules.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="../reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.extending.toolset_modules"></a>Toolset modules</h2></div></div></div>
+<p>If your extensions will be used only on one project, they can be
+ placed in a separate <code class="filename">.jam</code> file that will be
+ imported by your <code class="filename">project-root.jam</code>. If the
+ extensions will be used on many projects, users will thank you for
+ a finishing touch.
+ </p>
+<p>The <code class="computeroutput">using</code> rule provides a standard mechanism
+ for loading and configuring extensions. To make it work, your module
+
+ should provide an <code class="computeroutput">init</code> rule. The rule will be called
+ with the same parameters that were passed to the
+ <code class="computeroutput">using</code> rule. The set of allowed parameters is
+ determined by you. For example, you can allow the user to specify
+ paths, tool versions, and other options.
+ </p>
+<p>Here are some guidelines that help to make Boost.Build more
+ consistent:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>The <code class="computeroutput">init</code> rule should never fail. Even if
+ the user provided an incorrect path, you should emit a warning and go
+ on. Configuration may be shared between different machines, and
+ wrong values on one machine can be OK on another.
+ </p></li>
+<li>
+<p>Prefer specifying the command to be executed
+ to specifying the tool's installation path. First of all, this
+ gives more control: it's possible to specify
+</p>
+<pre class="programlisting">
+/usr/bin/g++-snapshot
+time g++
+</pre>
+<p>
+ as the command. Second, while some tools have a logical
+ "installation root", it's better if user doesn't have to remember whether
+ a specific tool requires a full command or a path.
+ </p>
+</li>
+<li>
+<p>Check for multiple initialization. A user can try to
+ initialize the module several times. You need to check for this
+ and decide what to do. Typically, unless you support several
+ versions of a tool, duplicate initialization is a user error.
+
+ If the
+ tool's version can be specified during initialization, make sure the
+ version is either always specified, or never specified (in which
+ case the tool is initialied only once). For example, if you allow:
+</p>
+<pre class="programlisting">
+using yfc ;
+using yfc : 3.3 ;
+using yfc : 3.4 ;
+</pre>
+<p>
+ Then it's not clear if the first initialization corresponds to
+ version 3.3 of the tool, version 3.4 of the tool, or some other
+ version. This can lead to building twice with the same version.
+ </p>
+</li>
+<li>
+<p>If possible, <code class="computeroutput">init</code> must be callable
+ with no parameters. In which case, it should try to autodetect all
+ the necessary information, for example, by looking for a tool in
+ <code class="envar">PATH</code> or in common installation locations. Often this
+ is possible and allows the user to simply write:
+</p>
+<pre class="programlisting">
+using yfc ;
+</pre>
+</li>
+<li><p>Consider using facilities in the
+ <code class="computeroutput">tools/common</code> module. You can take a look at how
+ <code class="computeroutput">tools/gcc.jam</code> uses that module in the <code class="computeroutput">init</code> rule.
+ </p></li>
+</ul></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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rules.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extender.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="../reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq.html b/doc/html/bbv2/faq.html
new file mode 100644
index 0000000000..acb25c5188
--- /dev/null
+++ b/doc/html/bbv2/faq.html
@@ -0,0 +1,149 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 27. Frequently Asked Questions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="reference/generators.html" title="Generators">
+<link rel="next" href="faq/envar.html" title="
+ Accessing environment variables
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/generators.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="faq/envar.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.faq"></a>Chapter 27. Frequently Asked Questions</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="faq.html#id1708877">
+ I'm getting "Duplicate name of actual target" error. What
+ does it mean?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/envar.html">
+ Accessing environment variables
+ </a></span></dt>
+<dt><span class="section"><a href="faq/s03.html">
+ How to control properties order?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/s04.html">
+ How to control the library order on Unix?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/external.html">Can I get output of external program as a variable in a Jamfile?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/s06.html">How to get the project-root location?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/s07.html">How to change compilation flags for one file?
+ </a></span></dt>
+<dt><span class="section"><a href="faq/dll-path.html">Why are the <code class="computeroutput">dll-path</code> and
+ <code class="computeroutput">hardcode-dll-paths</code> properties useful?
+ </a></span></dt>
+<dt><span class="section"><a href="recipies/site-config.html">Targets in site-config.jam</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1708877"></a>
+ I'm getting "Duplicate name of actual target" error. What
+ does it mean?
+ </h2></div></div></div>
+<p>
+ The most likely case is that you're trying to
+ compile the same file twice, with almost the same,
+ but differing properties. For example:
+
+</p>
+<pre class="programlisting">
+exe a : a.cpp : &lt;include&gt;/usr/local/include ;
+exe b : a.cpp ;
+</pre>
+<p>
+ The above snippet requires two different compilations
+ of 'a.cpp', which differ only in 'include' property.
+ Since the 'include' property is free, Boost.Build
+ can't generate two objects files into different directories.
+ On the other hand, it's dangerous to compile the file only
+ once -- maybe you really want to compile with different
+ includes.
+ </p>
+<p>
+ To solve this issue, you need to decide if file should
+ be compiled once or twice.</p>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>Two compile file only once, make sure that properties
+ are the same:
+
+</p>
+<pre class="programlisting">
+exe a : a.cpp : &lt;include&gt;/usr/local/include ;
+exe b : a.cpp : &lt;include&gt;/usr/local/include ;
+</pre>
+</li>
+<li>
+<p>
+ If changing the properties is not desirable, for example
+ if 'a' and 'b' target have other sources which need
+ specific properties, separate 'a.cpp' into it's own target:
+
+</p>
+<pre class="programlisting">
+obj a_obj : a.cpp : &lt;include&gt;/usr/local/include ;
+exe a : a_obj ;
+</pre>
+</li>
+<li>
+<p>
+ To compile file twice, you can make the object file local
+ to the main target:
+
+</p>
+<pre class="programlisting">
+ exe a : [ obj a_obj : a.cpp ] : &lt;include&gt;/usr/local/include ;
+ exe b : [ obj a_obj : a.cpp ] ;
+</pre>
+</li>
+</ol></div>
+<p>
+ A good question is why Boost.Build can't use some of the above
+ approaches automatically. The problem is that such magic would
+ require additional implementation complexities and would only
+ help in half of the cases, while in other half we'd be silently
+ doing the wrong thing. It's simpler and safe to ask user to
+ clarify his intention in such cases.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/generators.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="faq/envar.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/dll-path.html b/doc/html/bbv2/faq/dll-path.html
new file mode 100644
index 0000000000..80dd9ef47d
--- /dev/null
+++ b/doc/html/bbv2/faq/dll-path.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Why are the dll-path and
+ hardcode-dll-paths properties useful?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="s07.html" title="How to change compilation flags for one file?
+ ">
+<link rel="next" href="../recipies/site-config.html" title="Targets in site-config.jam">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s07.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="../recipies/site-config.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.faq.dll-path"></a>Why are the <code class="computeroutput">dll-path</code> and
+ <code class="computeroutput">hardcode-dll-paths</code> properties useful?
+ </h2></div></div></div>
+<p>(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
+ 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.
+ </p>
+<p>However, the shared library must be found when the application is
+ started. The dynamic linker will search in a system-defined list of
+ paths, load the library and resolve the symbols. Which means that you
+ should either change the system-defined list, given by the
+ <code class="envar">LD_LIBRARY_PATH</code> environment variable, or install the
+ libraries to a system location. This can be inconvenient when
+ developing, since the libraries are not yet ready to be installed, and
+ cluttering system paths is undesirable. Luckily, on Unix there's another
+ way.
+ </p>
+<p>An executable can include a list of additional library paths, which
+ will be searched before system paths. This is excellent for development,
+ because the build system knows the paths to all libraries and can include
+ them in executables. That's done when the <code class="computeroutput">hardcode-dll-paths</code>
+ feature has the <code class="literal">true</code> value, which is the
+ default. When the executables should be installed, the story is
+ different.
+ </p>
+<p>
+ Obviously, installed executable should not hardcode paths to your
+ development tree. (The <code class="computeroutput">stage</code> rule explicitly disables the
+ <code class="computeroutput">hardcode-dll-paths</code> feature for that reason.) However, you
+ can use the <code class="computeroutput">dll-path</code> feature to add explicit paths
+ manually. For example:
+</p>
+<pre class="programlisting">
+stage installed : application : &lt;dll-path&gt;/usr/lib/snake
+ &lt;location&gt;/usr/bin ;
+</pre>
+<p>
+ will allow the application to find libraries placed to
+ <code class="filename">/usr/lib/snake</code>.
+ </p>
+<p>If you install libraries to a nonstandard location and add an
+ explicit path, you get more control over libraries which will be used. A
+ library of the same name in a system location will not be inadvertently
+ used. If you install libraries to a system location and do not add any
+ paths, the system administrator will have more control. Each library can
+ be individually upgraded, and all applications will use the new library.
+ </p>
+<p>Which approach is best depends on your situation. If the libraries
+ are relatively standalone and can be used by third party applications,
+ they should be installed in the system location. If you have lots of
+ libraries which can be used only by your application, it makes sense to
+ install it to a nonstandard directory and add an explicit path, like the
+ example above shows. Please also note that guidelines for different
+ systems differ in this respect. The Debian guidelines prohibit any
+ additional search paths, and Solaris guidelines suggest that they should
+ always be used.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s07.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="../recipies/site-config.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/envar.html b/doc/html/bbv2/faq/envar.html
new file mode 100644
index 0000000000..406b531754
--- /dev/null
+++ b/doc/html/bbv2/faq/envar.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ Accessing environment variables
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="next" href="s03.html" title="
+ How to control properties order?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../faq.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s03.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.faq.envar"></a>
+ Accessing environment variables
+ </h2></div></div></div>
+<p>
+ Many users would like to use environment variables in Jamfiles, for
+ example, to control location of external libraries. In many cases you
+ better declare those external libraries in the site-config.jam file, as
+ documented in the <a href="../recipies/site-config.html" title="Targets in site-config.jam">recipes
+ section</a>. However, if the users already have the environment variables set
+ up, it's not convenient to ask them to set up site-config.jam files as
+ well, and using environment variables might be reasonable.
+ </p>
+<p>In Boost.Build V2, each Jamfile is a separate namespace, and the
+ variables defined in environment is imported into the global
+ namespace. Therefore, to access environment variable from Jamfile, you'd
+ need the following code:
+</p>
+<pre class="programlisting">
+import modules ;
+local SOME_LIBRARY_PATH = [ modules.peek : SOME_LIBRARY_PATH ] ;
+exe a : a.cpp : &lt;include&gt;$(SOME_LIBRARY_PATH) ;
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../faq.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s03.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/external.html b/doc/html/bbv2/faq/external.html
new file mode 100644
index 0000000000..927053ca9e
--- /dev/null
+++ b/doc/html/bbv2/faq/external.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Can I get output of external program as a variable in a Jamfile?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="s04.html" title="
+ How to control the library order on Unix?
+ ">
+<link rel="next" href="s06.html" title="How to get the project-root location?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s06.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.faq.external"></a>Can I get output of external program as a variable in a Jamfile?
+ </h2></div></div></div>
+<p>From time to time users ask how to run an external program and save
+ the result in Jamfile variable, something like:
+</p>
+<pre class="programlisting">
+local gtk_includes = [ RUN_COMMAND gtk-config ] ;
+</pre>
+<p>
+ Unfortunately, this is not possible at the moment. However, if the
+ result of command invocation is to be used in a command to some tool,
+ and you're working on Unix, the following workaround is possible.
+</p>
+<pre class="programlisting">
+ alias gtk+-2.0 : : : :
+ &lt;cflags&gt;"`pkg-config --cflags gtk+-2.0`"
+ &lt;inkflags&gt;"`pkg-config --libs gtk+-2.0`"
+ ;
+</pre>
+<p>
+ If you use the "gtk+-2.0" target in sources, then the properties
+ specified above will be added to the build properties and eventually
+ will appear in the command line. Unix command line shell processes
+ the backticks quoting by running the tool and using its output --
+ which is what's desired in that case. Thanks to Daniel James for
+ sharing this approach.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s06.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/s03.html b/doc/html/bbv2/faq/s03.html
new file mode 100644
index 0000000000..1ccb9f97ab
--- /dev/null
+++ b/doc/html/bbv2/faq/s03.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ How to control properties order?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="envar.html" title="
+ Accessing environment variables
+ ">
+<link rel="next" href="s04.html" title="
+ How to control the library order on Unix?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="envar.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s04.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1709000"></a>
+ How to control properties order?
+ </h2></div></div></div>
+<p>For internal reasons, Boost.Build sorts all the properties
+ alphabetically. This means that if you write:
+</p>
+<pre class="programlisting">
+exe a : a.cpp : &lt;include&gt;b &lt;include&gt;a ;
+</pre>
+<p>
+ then the command line with first mention the "a" include directory, and
+ then "b", even though they are specified in the opposite order. In most
+ cases, the user doesn't care. But sometimes the order of includes, or
+ other properties, is important. For example, if one uses both the C++
+ Boost library and the "boost-sandbox" (libraries in development), then
+ include path for boost-sandbox must come first, because some headers may
+ override ones in C++ Boost. For such cases, a special syntax is
+ provided:
+</p>
+<pre class="programlisting">
+exe a : a.cpp : &lt;include&gt;a&amp;&amp;b ;
+</pre>
+<p>The <code class="computeroutput">&amp;&amp;</code> symbols separate values of an
+ property, and specify that the order of the values should be preserved. You
+ are advised to use this feature only when the order of properties really
+ matters, and not as a convenient shortcut. Using it everywhere might
+ negatively affect performance.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="envar.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s04.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/s04.html b/doc/html/bbv2/faq/s04.html
new file mode 100644
index 0000000000..af8bf6dc45
--- /dev/null
+++ b/doc/html/bbv2/faq/s04.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ How to control the library order on Unix?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="s03.html" title="
+ How to control properties order?
+ ">
+<link rel="next" href="external.html" title="Can I get output of external program as a variable in a Jamfile?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="external.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1709033"></a>
+ How to control the library order on Unix?
+ </h2></div></div></div>
+<p>On the Unix-like operating systems, the order in which static
+ libraries are specified when invoking the linker is important, because by
+ default, the linker uses one pass though the libraries list. Passing the
+ libraries in the incorrect order will lead to a link error. Further, this
+ behaviour is often used to make one library override symbols from
+ another. So, sometimes it's necessary to force specific order of
+ libraries.
+ </p>
+<p>Boost.Build tries to automatically compute the right order. The
+ primary rule is that if library a "uses" library b, then library a will
+ appear on the command line before library b. Library a is considered to
+ use b is b is present either in the sources of a or in its
+ requirements. To explicitly specify the use relationship one can use the
+ &lt;use&gt; feature. For example, both of the following lines will cause
+ a to appear before b on the command line:
+</p>
+<pre class="programlisting">
+lib a : a.cpp b ;
+lib a : a.cpp : &lt;use&gt;b ;
+</pre>
+<p>
+ The same approach works for searched libraries, too:
+</p>
+<pre class="programlisting">
+lib z ;
+lib png : : &lt;use&gt;z ;
+exe viewer : viewer png z ;
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="external.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/s06.html b/doc/html/bbv2/faq/s06.html
new file mode 100644
index 0000000000..141f634e3b
--- /dev/null
+++ b/doc/html/bbv2/faq/s06.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>How to get the project-root location?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="external.html" title="Can I get output of external program as a variable in a Jamfile?
+ ">
+<link rel="next" href="s07.html" title="How to change compilation flags for one file?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="external.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s07.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1709107"></a>How to get the project-root location?
+ </h2></div></div></div>
+<p>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:
+</p>
+<pre class="programlisting">
+path-constant TOP : . ;
+</pre>
+<p>
+ After that, the <code class="computeroutput">TOP</code> variable can be used in every Jamfile.
+ </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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="external.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="s07.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/faq/s07.html b/doc/html/bbv2/faq/s07.html
new file mode 100644
index 0000000000..edbb431a23
--- /dev/null
+++ b/doc/html/bbv2/faq/s07.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>How to change compilation flags for one file?
+ </title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="s06.html" title="How to get the project-root location?
+ ">
+<link rel="next" href="dll-path.html" title="Why are the dll-path and
+ hardcode-dll-paths properties useful?
+ ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="dll-path.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1709127"></a>How to change compilation flags for one file?
+ </h2></div></div></div>
+<p>If one file must be compiled with special options, you need to
+ explicitly declare an <code class="computeroutput">obj</code> target for that file and then use
+ that target in your <code class="computeroutput">exe</code> or <code class="computeroutput">lib</code> target:
+</p>
+<pre class="programlisting">
+exe a : a.cpp b ;
+obj b : b.cpp : &lt;optimization&gt;off ;
+</pre>
+<p>
+ Of course you can use other properties, for example to specify specific
+ compiler options:
+</p>
+<pre class="programlisting">
+exe a : a.cpp b ;
+obj b : b.cpp : &lt;cflags&gt;-g ;
+</pre>
+<p>
+ You can also use <a href="../tutorial/conditions.html" title="Conditions and alternatives">conditional
+ properties</a> for finer control:
+</p>
+<pre class="programlisting">
+exe a : a.cpp b ;
+obj b : b.cpp : &lt;variant&gt;release:&lt;optimization&gt;off ;
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="dll-path.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/howto.html b/doc/html/bbv2/howto.html
new file mode 100644
index 0000000000..8d8dff2251
--- /dev/null
+++ b/doc/html/bbv2/howto.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 21. How to use this document</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="next" href="installation.html" title="Chapter 22. Installation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bbv2.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="installation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.howto"></a>Chapter 21. How to use this document</h2></div></div></div>
+<p>
+ If you've just found out about Boost.Build V2 and want to know
+ if it will work for you, start with <a href="tutorial.html" title="Chapter 23. Tutorial">Chapter 23, <i>Tutorial</i></a>. You can continue with the <a href="advanced.html" title="Chapter 24. User documentation">Chapter 24, <i>User documentation</i></a>. When you're ready to try Boost.Build
+ in practice, go to <a href="installation.html" title="Chapter 22. Installation">Chapter 22, <i>Installation</i></a>.
+ </p>
+<p>
+ If you are about to use Boost.Build on your project, or already
+ using it and have a problem, look at <a href="advanced.html" title="Chapter 24. User documentation">Chapter 24, <i>User documentation</i></a>.
+ </p>
+<p>
+ If you're trying to build a project which uses Boost.Build,
+ look at <a href="installation.html" title="Chapter 22. Installation">Chapter 22, <i>Installation</i></a> and then read about
+ <a href="reference.html#bbv2.reference.commandline" title="Command line">the section called &#8220;Command line&#8221;</a>.
+ </p>
+<p>
+ If you have questions, please post them to our <a href="http://boost.org/more/mailing_lists.htm#jamboost" target="_top">mailing
+ list</a>, and be sure to indicate in the subject line that
+ you're asking about Boost.Build <span class="bold"><strong>V2</strong></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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bbv2.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="installation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/installation.html b/doc/html/bbv2/installation.html
new file mode 100644
index 0000000000..038d7e98c1
--- /dev/null
+++ b/doc/html/bbv2/installation.html
@@ -0,0 +1,170 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 22. Installation</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="howto.html" title="Chapter 21. How to use this document">
+<link rel="next" href="tutorial.html" title="Chapter 23. Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="howto.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.installation"></a>Chapter 22. Installation</h2></div></div></div>
+<p>
+ This section describes how to install Boost.Build from a
+ released <a href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041" target="_top">Boost
+ source distribution</a>
+ or <a href="http://sourceforge.net/cvs/?group_id=7586" target="_top">CVS
+ image</a>.
+ <sup>[<a name="id1701106" href="#ftn.id1701106">2</a>]</sup>
+All paths are given relative to
+ the <em class="firstterm">Boost.Build v2 root directory</em>, which is
+
+
+
+ located in the <code class="filename">tools/build/v2</code> subdirectory
+ of a full Boost <a href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041" target="_top">distribution</a>.
+ <sup>[<a name="id1701143" href="#ftn.id1701143">3</a>]</sup></p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Boost.Build uses <a href="../../../tools/build/jam_src/index.html" target="_top">Boost.Jam</a>, an
+ extension of the <a href="http://www.perforce.com/jam/jam.html" target="_top">Perforce
+ Jam</a> portable <span><strong class="command">make</strong></span> replacement. The
+ recommended way to get Boost.Jam is to <span class="bold"><strong><a href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=72941" target="_top">download
+ a prebuilt executable</a></strong></span> from SourceForge.
+ If a prebuilt executable is not provided for your platform
+ or you are using Boost's sources in an unreleased state, it
+ may be necessary to <a href="../../../tools/build/jam_src/index.html#building_bjam" target="_top">build <span><strong class="command">bjam</strong></span>
+ from sources</a> included in the Boost source tree.
+ </li>
+<li>
+<p>
+
+ To install Boost.Jam, copy the executable,
+ called <span><strong class="command">bjam</strong></span>
+ or <span><strong class="command">bjam.exe</strong></span> to a location accessible in
+ your <code class="envar">PATH</code>. Go to the Boost.Build root
+ directory and
+ run <span><strong class="command">bjam <code class="option">--version</code></strong></span>. You
+ should see:
+
+ </p>
+<pre class="screen">
+ Boost.Build V2 (Milestone N)
+ Boost.Jam xx.xx.xx
+ </pre>
+<p>
+
+ where N is the version of Boost.Build you're using.
+ </p>
+</li>
+<li>
+ Configure Boost.Build to recognize the build resources (such
+ as compilers and libraries) you have installed on your
+ system. Open the
+ <code class="filename">user-config.jam</code> file in the Boost.Build
+ root directory and follow the instructions there to describe
+ your toolsets and libraries, and, if necessary, where they
+ are located.
+ </li>
+<li>
+ You should now be able to go to the
+ <code class="filename">example/hello/</code> directory and run
+ <span><strong class="command">bjam</strong></span> there. A simple application will be
+ built. You can also play with other projects in the
+ <code class="filename">example/</code> directory.
+ </li>
+</ol></div>
+<p>
+ If you are using Boost's CVS state, be sure to
+ rebuild <span><strong class="command">bjam</strong></span> even if you have a previous
+ version. The CVS version of Boost.Build requires the CVS
+ version of Boost.Jam.
+ </p>
+<p>
+ When <span><strong class="command">bjam</strong></span> is invoked, it always needs to be
+ able to find the Boost.Build root directory, where the
+ interpreted source code of Boost.Build is located. There are
+ two ways to tell <span><strong class="command">bjam</strong></span> about the root directory:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Set the environment variable <code class="envar">BOOST_BUILD_PATH</code>
+ to the absolute path of the Boost.Build root directory.
+ </li>
+<li>
+<p>
+ At the root directory of your project or in any of its
+ parent directories, create a file called
+ <code class="filename">boost-build.jam</code>, with a single line:
+
+</p>
+<pre class="programlisting">
+boost-build <em class="replaceable"><code>/path/to/boost.build</code></em> ;
+</pre>
+</li>
+</ul></div>
+<p><span class="bold"><strong>N.B.</strong></span>
+ When <span><strong class="command">bjam</strong></span> is invoked from anywhere in the Boost
+ directory tree <span class="emphasis"><em>other than</em></span> the Boost.Build root
+ and its subdirectories, <a href="../../../tools/build" target="_top">Boost.Build
+ v1</a> is used by default. To override the default and use
+ Boost.Build v2, you have to add the <code class="option">--v2</code> command
+ line option to all <span><strong class="command">bjam</strong></span> invocations.</p>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id1701106" href="#id1701106">2</a>] </sup>Note that packages prepared for
+ Unix/Linux systems usually make their own choices about where to
+ put things and even which parts of Boost to include. When we
+ say &#8220;released source distribution&#8221; we mean a
+ distribution of Boost as released on its SourceForge
+ <a href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041" target="_top">project
+ page</a>.
+ </p></div>
+<div class="footnote"><p><sup>[<a name="ftn.id1701143" href="#id1701143">3</a>] </sup>The Boost.Build subset of boost is also distributed
+ separately, for those who are only interested in getting a
+ build tool. The top-level directory of a <a href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=80982" target="_top">Boost.Build
+ distribution</a> contains all the subdirectories of the
+ <code class="filename">tools/build/v2</code> subdirectory from a full
+ Boost distribution, so it is itself a valid Boost.Build root
+ directory. It also contains the
+ <code class="filename">tools/build/jam_src</code> subdirectory of a
+ full Boost distribution, so you can rebuild Boost.Jam from
+ source.
+ </p></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="howto.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/recipies/site-config.html b/doc/html/bbv2/recipies/site-config.html
new file mode 100644
index 0000000000..442e64f7d4
--- /dev/null
+++ b/doc/html/bbv2/recipies/site-config.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Targets in site-config.jam</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+<link rel="prev" href="../faq/dll-path.html" title="Why are the dll-path and
+ hardcode-dll-paths properties useful?
+ ">
+<link rel="next" href="../arch.html" title="Appendix B. Boost.Build v2 architecture">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../faq/dll-path.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="../arch.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.recipies.site-config"></a>Targets in site-config.jam</h2></div></div></div>
+<p>It is desirable to declare standard libraries available on a
+ given system. Putting target declaration in Jamfile is not really
+ good, since locations of the libraries can vary. The solution is
+ to put the following to site-config.jam.</p>
+<pre class="programlisting">
+import project ;
+project.initialize $(__name__) ;
+project site-config ;
+lib zlib : : &lt;name&gt;z ;
+</pre>
+<p>The second line allows this module to act as project. The
+ third line gives id to this project &#8212; it really has no location
+ and cannot be used otherwise. The fourth line just declares a
+ target. Now, one can write:
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp /site-config//zlib ;
+</pre>
+<p>
+ in any Jamfile.</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../faq/dll-path.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../faq.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="../arch.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
new file mode 100644
index 0000000000..5905678b32
--- /dev/null
+++ b/doc/html/bbv2/reference.html
@@ -0,0 +1,337 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 26. Detailed reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="extending/toolset_modules.html" title="Toolset modules">
+<link rel="next" href="reference/jamfiles.html" title="Writing Jamfiles">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending/toolset_modules.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="reference/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.reference"></a>Chapter 26. Detailed reference</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.general">General information</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.commandline">Command line</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/jamfiles.html">Writing Jamfiles</a></span></dt>
+<dd><dl><dt><span class="section"><a href="reference/jamfiles.html#bbv2.reference.headers">Generated headers</a></span></dt></dl></dd>
+<dt><span class="section"><a href="reference/buildprocess.html">Build process</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/buildprocess.html#bbv2.reference.buildprocess.alternatives">Alternative selection</a></span></dt>
+<dt><span class="section"><a href="reference/buildprocess.html#bbv2.reference.buildprocess.common">Determining common properties</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/definitions.html">Definitions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.features">Features and properties</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants">Build Variants</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants.proprefine">Property refinement</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants.propcond">Conditional properties</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.ids">Target identifiers and references</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/generators.html">Generators</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/generators.html#id1708734">Selecting and ranking viable generators</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708774">Running generators</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708800">Selecting dependency graph</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708811">Property adjustment</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708854">Transformations cache</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.general"></a>General information</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.commandline">Command line</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.init"></a>Initialization</h3></div></div></div>
+<p>bjam's first job upon startup is to load the Jam code that
+ implements the build system. To do this, it searches for a file
+ called <code class="filename">boost-build.jam</code>, first in the invocation directory, then
+ in its parent and so forth up to the filesystem root, and finally
+ in the directories specified by the environment variable
+ BOOST_BUILD_PATH. When found, the file is interpreted, and should
+ specify the build system location by calling the boost-build
+ rule:</p>
+<pre class="programlisting">
+rule boost-build ( location ? )
+</pre>
+<p>
+ If location is a relative path, it is treated as relative to
+ the directory of <code class="filename">boost-build.jam</code>. The directory specified by
+ that location and the directories in BOOST_BUILD_PATH are then searched for
+ a file called <code class="filename">bootstrap.jam</code>, which is expected to
+ bootstrap the build system. This arrangement allows the build
+ system to work without any command-line or environment variable
+ settings. For example, if the build system files were located in a
+ directory "build-system/" at your project root, you might place a
+ <code class="filename">boost-build.jam</code> at the project root containing:
+
+</p>
+<pre class="programlisting">
+boost-build build-system ;
+</pre>
+<p>
+
+ In this case, running bjam anywhere in the project tree will
+ automatically find the build system.</p>
+<p>The default <code class="filename">bootstrap.jam</code>, after loading some standard
+ definitions, loads two files, which can be provided/customised by
+ user: <code class="filename">site-config.jam</code> and <code class="filename">user-config.jam</code>.</p>
+<p>Locations where those files a search are summarized below:</p>
+<div class="table">
+<a name="bbv2.reference.init.config"></a><p class="title"><b>Table 26.1. Search paths for configuration files</b></p>
+<table class="table" summary="Search paths for configuration files">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th> </th>
+<th>site-config.jam</th>
+<th>user-config.jam</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Linux</td>
+<td>
+<p><code class="computeroutput">/etc</code></p>
+<p><code class="computeroutput">$HOME</code></p>
+<p><code class="computeroutput">$BOOST_BUILD_PATH</code></p>
+</td>
+<td>
+<p><code class="computeroutput">$HOME</code></p>
+<p><code class="computeroutput">$BOOST_BUILD_PATH</code></p>
+</td>
+</tr>
+<tr>
+<td>Windows</td>
+<td>
+<p><code class="computeroutput">%SystemRoot%</code></p>
+<p><code class="computeroutput">%HOMEDRIVE%%HOMEPATH%</code></p>
+<p><code class="computeroutput">%HOME%</code></p>
+<p><code class="computeroutput">%BOOST_BUILD_PATH%</code></p>
+</td>
+<td>
+<p><code class="computeroutput">%HOMEDRIVE%%HOMEPATH%</code></p>
+<p><code class="computeroutput">%HOME%</code></p>
+<p><code class="computeroutput">%BOOST_BUILD_PATH%</code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>
+ Boost.Build comes with default versions of those files,
+
+ which can serve as templates for customized versions.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.commandline"></a>Command line</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init.args">Command line arguments</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init.options">Command line options</a></span></dt>
+</dl></div>
+<p>The command line may contain:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>Jam options,</li>
+<li>Boost.Build <a href="reference.html#bbv2.reference.init.options" title="Command line options">options</a>,</li>
+<li>Command line arguments</li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.init.args"></a>Command line arguments</h4></div></div></div>
+<p>
+ Command line arguments specify targets and build
+ request using the following rules.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ An argument that does not contain slashes or the <code class="computeroutput">=</code>
+ symbol is either a value of an implicit feature or of a target to
+ be built. It is taken to be value of a feature if an appropriate
+ feature exists. Otherwise, it is considered a <a href="reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">target id</a>. Building the
+ special target name &#8220;clean&#8221; has the same effect as
+ using the <code class="computeroutput">--clean</code> option.
+ </li>
+<li>
+<p>
+ An argument containing either slashes or
+ the <code class="computeroutput">=</code> symbol specifies a number of build
+ request elements (see ???). In its simplest
+ form, it's just a set of properties, separated by
+ slashes, which become a single build request element,
+ for example:
+
+</p>
+<pre class="programlisting">
+borland/&lt;runtime-link&gt;static
+</pre>
+<p>
+
+ A more complex form can be used to save typing. For example,
+ instead of
+
+</p>
+<pre class="programlisting">
+borland/runtime-link=static borland/runtime-link=dynamic
+</pre>
+<p>
+
+ one can use
+
+</p>
+<pre class="programlisting">
+borland/runtime-link=static,dynamic
+</pre>
+<p>
+
+ Exactly, the conversion from argument to build request
+ elements is performed by (1) splitting the argument at each slash,
+ (2) converting each split part into a set of properties and (3)
+ taking all possible combinations
+
+ of the property sets. Each split
+ part should have the either the form
+
+</p>
+<pre class="programlisting"><span class="emphasis"><em>feature-name</em></span>=<span class="emphasis"><em>feature-value1</em></span>[","<span class="emphasis"><em>feature-valueN</em></span>]*
+</pre>
+<p>
+
+ or, in case of implicit features
+
+</p>
+<pre class="programlisting"><span class="emphasis"><em>feature-value1</em></span>[","<span class="emphasis"><em>feature-valueN</em></span>;]*
+</pre>
+<p>
+
+ will be converted into the property set
+
+</p>
+<pre class="programlisting">
+&lt;feature-name&gt;feature-value1 .... &lt;feature-name&gt;feature-valueN
+</pre>
+</li>
+</ul></div>
+<p>
+ For example, the command line
+
+</p>
+<pre class="programlisting">
+target1 debug gcc/runtime-link=dynamic,static
+</pre>
+<p>
+
+ would cause target called <code class="literal">target1</code> to be rebuilt in
+ debug mode, except that for gcc, both dynamically and statically
+ linked binaries would be created.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.init.options"></a>Command line options</h4></div></div></div>
+<p>All of the Boost.Build options start with the "--" prefix.
+ They are described in the following table.</p>
+<div class="table">
+<a name="id1707672"></a><p class="title"><b>Table 26.2. Command line options</b></p>
+<table class="table" summary="Command line options">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Option</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="literal">--version</code></td>
+<td>Prints information on Boost.Build and Boost.Jam
+ versions.</td>
+</tr>
+<tr>
+<td>
+<a name="bbv2.reference.init.options.help"></a><code class="literal">--help</code>
+</td>
+<td>Access to the online help system. This prints general
+ information on how to use the help system with additional
+ --help* options.</td>
+</tr>
+<tr>
+<td><code class="literal">--clean</code></td>
+<td>Removes everything instead of building. Unlike
+ <code class="literal">clean</code> target in make, it is possible to clean only
+ some targets.</td>
+</tr>
+<tr>
+<td><code class="literal">--debug</code></td>
+<td>Enables internal checks.</td>
+</tr>
+<tr>
+<td><code class="literal">--dump-projects</code></td>
+<td>Cause the project structure to be output.</td>
+</tr>
+<tr>
+<td><code class="literal">--no-error-backtrace</code></td>
+<td>Don't print backtrace on errors. Primary useful for
+ testing.</td>
+</tr>
+<tr>
+<td><code class="literal">--ignore-config</code></td>
+<td>Do not load <code class="literal">site-config.jam</code> and
+ <code class="literal">user-config.jam</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending/toolset_modules.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="reference/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/reference/buildprocess.html b/doc/html/bbv2/reference/buildprocess.html
new file mode 100644
index 0000000000..ea7de7db35
--- /dev/null
+++ b/doc/html/bbv2/reference/buildprocess.html
@@ -0,0 +1,141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Build process</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../reference.html" title="Chapter 26. Detailed reference">
+<link rel="prev" href="jamfiles.html" title="Writing Jamfiles">
+<link rel="next" href="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.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jamfiles.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="definitions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.buildprocess"></a>Build process</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="buildprocess.html#bbv2.reference.buildprocess.alternatives">Alternative selection</a></span></dt>
+<dt><span class="section"><a href="buildprocess.html#bbv2.reference.buildprocess.common">Determining common properties</a></span></dt>
+</dl></div>
+<p>The general overview of the build process was given in the
+ <a href="../advanced/build_process.html" title="The Build Process">user documentation</a>.
+ This section provides additional details, and some specific rules.
+ </p>
+<p>To recap, building a target with specific properties includes the
+ following steps:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>applying default build,</p></li>
+<li><p>selecting the main target alternative to use,
+ </p></li>
+<li><p>determining "common" properties</p></li>
+<li><p>building targets referred by the sources list and
+ dependency properties</p></li>
+<li><p>adding the usage requirements produces when building
+ dependencies to the "common" properties</p></li>
+<li><p>building the target using generators</p></li>
+<li><p>computing the usage requirements to be returned</p></li>
+</ol></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.buildprocess.alternatives"></a>Alternative selection</h3></div></div></div>
+<p>When there are several alternatives, one of them must be
+ selected. The process is as follows:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ For each alternative <span class="emphasis"><em>condition</em></span> is defined
+ as the set of base properies in requirements. [Note: it might be
+ better to specify the condition explicitly, as in
+ conditional requirements].
+ </li>
+<li>
+ An alternative is viable only if all properties in condition
+ are present in build request.
+ </li>
+<li>
+ If there's one viable alternative, it's choosen. Otherwise,
+ an attempt is made to find one best alternative. An alternative
+ a is better than another alternative b, iff set of properties
+ in b's condition is strict subset of the set of properities of
+ 'a's condition. If there's one viable alternative, which is
+ better than all other, it's selected. Otherwise, an error is
+ reported.
+ </li>
+</ol></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.buildprocess.common"></a>Determining common properties</h3></div></div></div>
+<p>The "common" properties is a somewhat artificial term. Those are
+ the intermediate property set from which both the build request for
+ dependencies and properties for building the target are derived.
+ </p>
+<p>Since default build and alternatives are already handled, we have
+ only two inputs: build requests and requirements. Here are the rules
+ about common properties.
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>Non-free feature can have only one
+ value</p></li>
+<li><p>A non-conditional property in requirement in always
+ present in common properties.</p></li>
+<li><p>A property in build request is present in
+ common properties, unless (2) tells otherwise.</p></li>
+<li><p>If either build request, or requirements (non-conditional
+ or conditional) include an expandable property (either composite,
+ or property with specified subfeature value), the behaviour is
+ equivalent to explicitly adding all expanded properties to build
+ request or requirements.</p></li>
+<li><p>If requirements include a conditional property, and
+ condiiton of this property is true in context of common
+ properties, then the conditional property should be in common
+ properties as well.</p></li>
+<li><p>If no value for a feature is given by other rules
+ here, it has default value in common properties.</p></li>
+</ol></div>
+<p>Those rules are declarative, they don't specify how to compute the
+ common properties. However, they provide enough information for the
+ user. The important point is the handling of conditional
+ requirements. The condition can be satisfied either by property in
+ build request, by non-conditional requirements, or even by another
+ conditional property. For example, the following example works as
+ expected:
+</p>
+<pre class="programlisting">
+exe a : a.cpp
+ : &lt;toolset&gt;gcc:&lt;variant&gt;release
+ &lt;variant&gt;release:&lt;define&gt;FOO ;
+</pre>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jamfiles.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="definitions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/reference/definitions.html b/doc/html/bbv2/reference/definitions.html
new file mode 100644
index 0000000000..6918d99094
--- /dev/null
+++ b/doc/html/bbv2/reference/definitions.html
@@ -0,0 +1,379 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Definitions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../reference.html" title="Chapter 26. Detailed reference">
+<link rel="prev" href="buildprocess.html" title="Build process">
+<link rel="next" href="generators.html" title="Generators">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="buildprocess.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="generators.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.definitions"></a>Definitions</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.features">Features and properties</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.variants">Build Variants</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.variants.proprefine">Property refinement</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.variants.propcond">Conditional properties</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.ids">Target identifiers and references</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.features"></a>Features and properties</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.features.validity">Property Validity</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.features.attributes">Feature Attributes</a></span></dt>
+<dt><span class="section"><a href="definitions.html#bbv2.reference.features.declaration">Feature Declaration</a></span></dt>
+</dl></div>
+<p>A <span class="emphasis"><em>feature</em></span> is a normalized (toolset-independent)
+ aspect of a build configuration, such as whether inlining is
+ enabled. Feature names may not contain the '<code class="literal">&gt;</code>'
+ character.</p>
+<p>Each feature in a build configuration has one or more
+ associated <span class="emphasis"><em>value</em></span>s. Feature values for non-free features
+ may not contain the '<code class="literal">&lt;</code>', '<code class="literal">:</code>', or
+ '<code class="literal">=</code>' characters. Feature values for free features may not
+ contain the '<code class="literal">&lt;</code>' character.</p>
+<p>A <span class="emphasis"><em>property</em></span> is a (feature,value) pair, expressed as
+ &lt;feature&gt;value.</p>
+<p>A <span class="emphasis"><em>subfeature</em></span> is a feature that only exists in the
+ presence of its parent feature, and whose identity can be derived
+ (in the context of its parent) from its value. A subfeature's
+ parent can never be another subfeature. Thus, features and their
+ subfeatures form a two-level hierarchy.</p>
+<p>A <span class="emphasis"><em>value-string</em></span> for a feature <span class="bold"><strong>F</strong></span> is a string of
+ the form
+ <code class="literal">value-subvalue1-subvalue2</code>...<code class="literal">-subvalueN</code>, where
+ <code class="literal">value</code> is a legal value for <span class="bold"><strong>F</strong></span> and
+ <code class="literal">subvalue1</code>...<code class="literal">subvalueN</code> are legal values of some
+ of <span class="bold"><strong>F</strong></span>'s subfeatures. For example, the properties
+ <code class="literal">&lt;toolset&gt;gcc &lt;toolset-version&gt;3.0.1</code> can be
+ expressed more conscisely using a value-string, as
+ <code class="literal">&lt;toolset&gt;gcc-3.0.1</code>.</p>
+<p>A <span class="emphasis"><em>property set</em></span> is a set of properties (i.e. a
+ collection without duplicates), for instance:
+ <code class="literal">&lt;toolset&gt;gcc &lt;runtime-link&gt;static</code>.</p>
+<p>A <span class="emphasis"><em>property path</em></span> is a property set whose elements have
+ been joined into a single string separated by slashes. A property
+ path representation of the previous example would be
+ <code class="literal">&lt;toolset&gt;gcc/&lt;runtime-link&gt;static</code>.</p>
+<p>A <span class="emphasis"><em>build specification</em></span> is a property set that fully
+ describes the set of features used to build a target.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.features.validity"></a>Property Validity</h4></div></div></div>
+<p>
+ For <a href="definitions.html#bbv2.reference.features.attributes.free">free</a>
+ features, all values are valid. For all other features,
+ the valid values are explicitly specified, and the build
+ system will report an error for the use of an invalid
+ feature-value. Subproperty validity may be restricted so
+ that certain values are valid only in the presence of
+ certain other subproperties. For example, it is possible
+ to specify that the <code class="computeroutput">&lt;gcc-target&gt;mingw</code>
+ property is only valid in the presence of
+ <code class="computeroutput">&lt;gcc-version&gt;2.95.2</code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.features.attributes"></a>Feature Attributes</h4></div></div></div>
+<p>Each feature has a collection of zero or more of the following
+ attributes. Feature attributes are low-level descriptions of how the
+ build system should interpret a feature's values when they appear in
+ a build request. We also refer to the attributes of properties, so
+ that an <span class="emphasis"><em>incidental</em></span> property, for example, is
+ one whose feature has the <span class="emphasis"><em>incidental</em></span>
+ attribute.</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="emphasis"><em>incidental</em></span></p>
+<p>Incidental features are assumed not to affect build
+ products at all. As a consequence, the build system may use
+ the same file for targets whose build specification differs
+ only in incidental features. A feature that controls a
+ compiler's warning level is one example of a likely
+ incidental feature.</p>
+<p>Non-incidental features are assumed to affect build
+ products, so the files for targets whose build specification
+ differs in non-incidental features are placed in different
+ directories as described in "target paths" below. [ where? ]
+ </p>
+</li>
+<li>
+<p><a name="bbv2.reference.features.attributes.propagated"></a><span class="emphasis"><em>propagated</em></span></p>
+<p>Features of this kind are
+ propagated to dependencies. That is, if a <a href="../advanced/jamfiles.html#bbv2.advanced.targets.main">main target</a> is built using a
+ propagated
+ property, the build systems attempts to use the same property
+ when building any of its dependencies as part of that main
+ target. For instance, when an optimized exectuable is
+ requested, one usually wants it to be linked with optimized
+ libraries. Thus, the <code class="literal">&lt;optimization&gt;</code> feature is
+ propagated.</p>
+</li>
+<li>
+<p><a name="bbv2.reference.features.attributes.free"></a><span class="emphasis"><em>free</em></span></p>
+<p>Most features have a finite set of allowed values, and can
+ only take on a single value from that set in a given build
+ specification. Free features, on the other hand, can have
+ several values at a time and each value can be an arbitrary
+ string. For example, it is possible to have several
+ preprocessor symbols defined simultaneously:</p>
+<pre class="programlisting">
+&lt;define&gt;NDEBUG=1 &lt;define&gt;HAS_CONFIG_H=1
+</pre>
+</li>
+<li>
+<p><span class="emphasis"><em>optional</em></span></p>
+<p>An optional feature is a feature that is not required to
+ appear in a build specification. Every non-optional non-free
+ feature has a default value that is used when a value for
+ the feature is not otherwise specified, either in a target's
+ requirements or in the user's build request. [A feature's
+ default value is given by the first value listed in the
+ feature's declaration. -- move this elsewhere - dwa]</p>
+</li>
+<li>
+<p><span class="emphasis"><em>symmetric</em></span></p>
+<p>A symmetric feature's default value is not automatically
+ included in <a href="definitions.html#bbv2.reference.variants" title="Build Variants">build variants</a>. Normally
+ a feature only generates a subvariant directory when its
+ value differs from the value specified by the build variant,
+ leading to an assymmetric subvariant directory structure for
+ certain values of the feature. A symmetric feature, when
+ relevant to the toolset, always generates a corresponding
+ subvariant directory.</p>
+</li>
+<li>
+<p><span class="emphasis"><em>path</em></span></p>
+<p>The value of a path feature specifies a path. The path is
+ treated as relative to the directory of Jamfile where path
+ feature is used and is translated appropriately by the build
+ system when the build is invoked from a different
+ directory</p>
+</li>
+<li>
+<p><span class="emphasis"><em>implicit</em></span></p>
+<p>Values of implicit features alone identify the feature.
+ For example, a user is not required to write
+ "&lt;toolset&gt;gcc", but can simply write "gcc". Implicit
+ feature names also don't appear in variant paths, although
+ the values do. Thus: bin/gcc/... as opposed to
+ bin/toolset-gcc/.... There should typically be only a few
+ such features, to avoid possible name clashes.</p>
+</li>
+<li>
+<p><span class="emphasis"><em>composite</em></span></p>
+<p>Composite features actually correspond to groups of
+ properties. For example, a build variant is a composite
+ feature. When generating targets from a set of build
+ properties, composite features are recursively expanded and
+ <span class="emphasis"><em>added</em></span> to the build property set, so rules can find
+ them if necessary. Non-composite non-free features override
+ components of composite features in a build property set.</p>
+</li>
+<li>
+<p><span class="emphasis"><em>dependency</em></span></p>
+<p>The value of dependency feature if a target reference.
+ When used for building of a main target, the value of
+ dependency feature is treated as additional dependency.</p>
+<p>For example, dependency features allow to state that
+ library A depends on library B. As the result, whenever an
+ application will link to A, it will also link to B.
+ Specifying B as dependency of A is different from adding B to
+ the sources of A. </p>
+</li>
+</ul></div>
+<p>Features that are neither free nor incidental are called
+ <span class="emphasis"><em>base</em></span> features.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.features.declaration"></a>Feature Declaration</h4></div></div></div>
+<p>The low-level feature declaration interface is the
+ <code class="literal">feature</code> rule from the
+ <code class="literal">feature</code> module:
+
+</p>
+<pre class="programlisting">
+rule feature ( name : allowed-values * : attributes * )
+</pre>
+<p>
+
+ A feature's allowed-values may be extended with the
+ <code class="computeroutput">feature.extend</code> rule.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.variants"></a>Build Variants</h3></div></div></div>
+<p>
+ A build variant, or (simply variant) is a special kind of composite
+ feature that automatically incorporates the default values of
+ features that . Typically you'll want at least two separate
+ variants: one for debugging, and one for your release code. [
+ Volodya says: "Yea, we'd need to mention that it's a composite
+ feature and describe how they are declared, in pacticular that
+ default values of non-optional features are incorporated into
+ build variant automagically. Also, do we wan't some variant
+ inheritance/extension/templates. I don't remember how it works in
+ V1, so can't document this for V2.". Will clean up soon -DWA ]
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.variants.proprefine"></a>Property refinement</h3></div></div></div>
+<p>When a target with certain properties is requested, and that
+ target requires some set of properties, it is needed to find the
+ set of properties to use for building. This process is called
+ <span class="emphasis"><em>property refinement</em></span> and is performed by these rules</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Each property in the required set is added to the original
+ property set
+ </li>
+<li>
+ If the original property set includes property with a different
+ value of non free feature, that property is removed.
+ </li>
+</ol></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.variants.propcond"></a>Conditional properties</h3></div></div></div>
+<p>Sometime it's desirable to apply certain requirements only for
+ a specific combination of other properties. For example, one of
+ compilers that you use issues a pointless warning that you want to
+ suppress by passing a command line option to it. You would not
+ want to pass that option to other compilers. Conditional
+ properties allow you to do just that. Their syntax is:</p>
+<pre class="programlisting">
+ property ( "," property ) * ":" property
+ </pre>
+<p>
+ For example, the problem above would be solved by:
+
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp : &lt;toolset&gt;yfc:&lt;cxxflags&gt;-disable-pointless-warning ;
+</pre>
+<p>The syntax also allows several properties in the condition, for
+ example:
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp : &lt;os&gt;NT,&lt;toolset&gt;gcc:&lt;link&gt;static ;
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.ids"></a>Target identifiers and references</h3></div></div></div>
+<p><span class="emphasis"><em>Target identifier</em></span> is used to denote a
+ target. The syntax is:</p>
+<pre class="programlisting">
+target-id -&gt; (project-id | target-name | file-name )
+ | (project-id | directory-name) "//" target-name
+project-id -&gt; path
+target-name -&gt; path
+file-name -&gt; path
+directory-name -&gt; path
+</pre>
+<p>
+ This grammar allows some elements to be recognized as either
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ project id (at this point, all project ids start with slash).
+ </li>
+<li>
+ name of target declared in current Jamfile (note that target
+ names may include slash).
+ </li>
+<li>
+ a regular file, denoted by absolute name or name relative to
+ project's sources location.
+ </li>
+</ul></div>
+<p>
+
+ To determine the real meaning a check is made if project-id
+ by the specified name exists, and then if main target of that
+ name exists. For example, valid target ids might be:
+
+</p>
+<pre class="screen">
+a -- target in current project
+lib/b.cpp -- regular file
+/boost/thread -- project "/boost/thread"
+/home/ghost/build/lr_library//parser -- target in specific project
+</pre>
+<p><span class="bold"><strong>Rationale:</strong></span>Target is separated from project by special
+ separator (not just slash), because:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ It emphasises that projects and targets are different things.
+ </li>
+<li>
+ It allows to have main target names with slashes.
+
+ </li>
+</ul></div>
+<p><a name="bbv2.reference.targets.references"></a><span class="emphasis"><em>Target reference</em></span> is used to
+ specify a source target, and may additionally specify desired
+ properties for that target. It has this syntax:</p>
+<pre class="programlisting">
+target-reference -&gt; target-id [ "/" requested-properties ]
+requested-properties -&gt; property-path
+</pre>
+<p>
+ For example,
+
+ </p>
+<pre class="programlisting">
+ exe compiler : compiler.cpp libs/cmdline/&lt;optimization&gt;space ;
+ </pre>
+<p>
+
+ would cause the version of <code class="literal">cmdline</code> library,
+ optimized for space, to be linked in even if the
+ <code class="literal">compiler</code> executable is build with optimization for
+ speed.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="buildprocess.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="generators.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/reference/generators.html b/doc/html/bbv2/reference/generators.html
new file mode 100644
index 0000000000..9dade7d7e8
--- /dev/null
+++ b/doc/html/bbv2/reference/generators.html
@@ -0,0 +1,196 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Generators</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../reference.html" title="Chapter 26. Detailed reference">
+<link rel="prev" href="definitions.html" title="Definitions">
+<link rel="next" href="../faq.html" title="Chapter 27. Frequently Asked Questions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="definitions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../faq.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.generators"></a>Generators</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="generators.html#id1708734">Selecting and ranking viable generators</a></span></dt>
+<dt><span class="section"><a href="generators.html#id1708774">Running generators</a></span></dt>
+<dt><span class="section"><a href="generators.html#id1708800">Selecting dependency graph</a></span></dt>
+<dt><span class="section"><a href="generators.html#id1708811">Property adjustment</a></span></dt>
+<dt><span class="section"><a href="generators.html#id1708854">Transformations cache</a></span></dt>
+</dl></div>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p>The information is this section is likely to be outdated
+ and misleading.
+ </p>
+</div>
+<p>To construct a main target with given properties from sources,
+ it is required to create a dependency graph for that main target,
+ which will also include actions to be run. The algorithm for
+ creating the dependency graph is described here.</p>
+<p>The fundamental concept is <span class="emphasis"><em>generator</em></span>. If encapsulates
+ the notion of build tool and is capable to converting a set of
+ input targets into a set of output targets, with some properties.
+ Generator matches a build tool as closely as possible: it works
+ only when the tool can work with requested properties (for
+ example, msvc compiler can't work when requested toolset is gcc),
+ and should produce exactly the same targets as the tool (for
+ example, if Borland's linker produces additional files with debug
+ information, generator should also).</p>
+<p>Given a set of generators, the fundamental operation is to
+ construct a target of a given type, with given properties, from a
+ set of targets. That operation is performed by rule
+ <code class="literal">generators.construct</code> and the used algorithm is described
+ below.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1708734"></a>Selecting and ranking viable generators</h3></div></div></div>
+<p>Each generator, in addition to target types that it can
+ produce, have attribute that affects its applicability in
+ particular sitiation. Those attributes are:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Required properties, which are properties absolutely
+ necessary for the generator to work. For example, generator
+ encapsulating the gcc compiler would have &lt;toolset&gt;gcc as
+ required property.
+ </li>
+<li>
+ Optional properties, which increase the generators
+ suitability for a particual build.
+ </li>
+</ol></div>
+<p>
+ Generator's required and optional properties may not include
+ either free or incidental properties. (Allowing this would
+ greatly complicate caching targets).
+ </p>
+<p>When trying to construct a target, the first step is to select
+ all possible generators for the requested target type, which
+ required properties are a subset of requested properties.
+ Generators that were already selected up the call stack are
+ excluded. In addition, if any composing generators were selected
+ up the call stack, all other composing generators are ignored
+ (TODO: define composing generators). The found generators
+ are assigned a rank, which is the number of optional properties
+ present in requested properties. Finally, generators with highest
+ rank are selected for futher processing.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1708774"></a>Running generators</h3></div></div></div>
+<p>When generators are selected, each is run to produce a list of
+ created targets. This list might include targets that are not of
+ requested types, because generators create the same targets as
+ some tool, and tool's behaviour is fixed. (Note: should specify
+ that in some cases we actually want extra targets). If generator
+ fails, it returns an empty list. Generator is free to call
+ 'construct' again, to convert sources to the types it can handle.
+ It also can pass modified properties to 'construct'. However, a
+ generator is not allowed to modify any propagated properties,
+ otherwise when actually consuming properties we might discover
+ that the set of propagated properties is different from what was
+ used for building sources.</p>
+<p>For all targets that are not of requested types, we try to
+ convert them to requested type, using a second call to
+ <code class="literal">construct</code>. This is done in order to support
+ transformation sequences where single source file expands to
+ several later. See <a href="http://groups.yahoo.com/group/jamboost/message/1667" target="_top">this
+ message</a> for details.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1708800"></a>Selecting dependency graph</h3></div></div></div>
+<p>
+ After all generators are run,
+ it is necessary to decide which of successfull invocation will be
+ taken as final result. At the moment, this is not done. Instead,
+ it is checked whether all successfull generator invocation
+ returned the same target list. Error is issued otherwise.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1708811"></a>Property adjustment</h3></div></div></div>
+<p>Because target location is determined by the build system, it
+ is sometimes necessary to adjust properties, in order to not
+ break actions. For example, if there's an action that generates
+ a header, say "a_parser.h", and a source file "a.cpp" which
+ includes that file, we must make everything work as if a_parser.h
+ is generated in the same directory where it would be generated
+ without any subvariants.</p>
+<p>Correct property adjustment can be done only after all targets
+ are created, so the approach taken is:</p>
+<div class="orderedlist"><ol type="1">
+<li><p>
+ When dependency graph is constructed, each action can be
+ assigned a rule for property adjustment.
+ </p></li>
+<li><p>
+ When virtual target is actualized, that rule is run and
+ return the final set of properties. At this stage it can use
+ information of all created virtual targets.
+ </p></li>
+</ol></div>
+<p>In case of quoted includes, no adjustment can give 100% correct
+ results. If target dirs are not changed by build system, quoted
+ includes are searched in "." and then in include path, while angle
+ includes are searched only in include path. When target dirs are
+ changed, we'd want to make quoted includes to be search in "." then in
+ additional dirs and then in the include path and make angle includes
+ be searched in include path, probably with additional paths added at
+ some position. Unless, include path already has "." as the first
+ element, this is not possible. So, either generated headers should not
+ be included with quotes, or first element of include path should be
+ ".", which essentially erases the difference between quoted and angle
+ includes. <span class="bold"><strong>Note:</strong></span> the only way to get
+ "." as include path into compiler command line is via verbatim
+ compiler option. In all other case, Boost.Build will convert "." into
+ directory where it occurs.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1708854"></a>Transformations cache</h3></div></div></div>
+<p>
+ Under certain conditions, an
+ attempt is made to cache results of transformation search. First,
+ the sources are replaced with targets with special name and the
+ found target list is stored. Later, when properties, requested
+ type, and source type are the same, the store target list is
+ retrieved and cloned, with appropriate change in names.
+ </p>
+</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></small></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="../reference.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="../faq.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/reference/jamfiles.html b/doc/html/bbv2/reference/jamfiles.html
new file mode 100644
index 0000000000..9ce7832ab7
--- /dev/null
+++ b/doc/html/bbv2/reference/jamfiles.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Writing Jamfiles</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../reference.html" title="Chapter 26. Detailed reference">
+<link rel="prev" href="../reference.html" title="Chapter 26. Detailed reference">
+<link rel="next" href="buildprocess.html" title="Build process">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="buildprocess.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.jamfiles"></a>Writing Jamfiles</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="jamfiles.html#bbv2.reference.headers">Generated headers</a></span></dt></dl></div>
+<p>This section describes specific information about writing Jamfiles.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.headers"></a>Generated headers</h3></div></div></div>
+<p>Usually, Boost.Build handles implicit dependendies completely
+ automatically. For example, for C++ files, all <code class="literal">#include</code>
+ statements are found and handled. The only aspect where user help
+ might be needed is implicit dependency on generated files.</p>
+<p>By default, Boost.Build handles such dependencies within one
+ main target. For example, assume that main target "app" has two
+ sources, "app.cpp" and "parser.y". The latter source is converted
+ into "parser.c" and "parser.h". Then, if "app.cpp" includes
+ "parser.h", Boost.Build will detect this dependency. Moreover,
+ since "parser.h" will be generated into a build directory, the
+ path to that directory will automatically added to include
+ path.</p>
+<p>Making this mechanism work across main target boundaries is
+ possible, but imposes certain overhead. For that reason, if
+ there's implicit dependency on files from other main targets, the
+ <code class="literal">&lt;implicit-dependency&gt;</code> [ link ] feature must
+ be used, for example:</p>
+<pre class="programlisting">
+lib parser : parser.y ;
+exe app : app.cpp : &lt;implicit-dependency&gt;parser ;
+</pre>
+<p>
+ The above example tells the build system that when scanning
+ all sources of "app" for implicit-dependencies, it should consider
+ targets from "parser" as potential dependencies.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="buildprocess.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial.html b/doc/html/bbv2/tutorial.html
new file mode 100644
index 0000000000..796215d5eb
--- /dev/null
+++ b/doc/html/bbv2/tutorial.html
@@ -0,0 +1,135 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 23. Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="installation.html" title="Chapter 22. Installation">
+<link rel="next" href="tutorial/properties.html" title="Properties">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="installation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="tutorial/properties.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.tutorial"></a>Chapter 23. Tutorial</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.hello">Hello, world</a></span></dt>
+<dt><span class="section"><a href="tutorial/properties.html">Properties</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="tutorial/properties.html#bbv2.tutorial.properties.requirements">Build Requests and Target Requirements</a></span></dt>
+<dt><span class="section"><a href="tutorial/properties.html#bbv2.tutorial.properties.project_attributes">Project Attributes</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="tutorial/hierarchy.html">Project Hierarchies</a></span></dt>
+<dt><span class="section"><a href="tutorial/libs.html">Dependent Targets</a></span></dt>
+<dt><span class="section"><a href="tutorial/linkage.html">Static and shared libaries</a></span></dt>
+<dt><span class="section"><a href="tutorial/conditions.html">Conditions and alternatives</a></span></dt>
+<dt><span class="section"><a href="tutorial/prebuilt.html">Prebuilt targets</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.hello"></a>Hello, world</h2></div></div></div>
+<p>The simplest project that Boost.Build can construct is
+ stored in <code class="filename">example/hello/</code> directory. The
+ project is described by a file
+ called <code class="filename">Jamroot</code> that contains:
+
+</p>
+<pre class="programlisting">
+exe hello : hello.cpp ;
+</pre>
+<p>
+
+ Even with this simple setup, you can do some interesting
+ things. First of all, just invoking <span><strong class="command">bjam</strong></span> will
+ build the <code class="filename">hello</code>
+ executable by compiling and
+ linking <code class="filename">hello.cpp</code>. By default, debug variant
+ is built. Now, to build the
+ release variant of <code class="filename">hello</code>, invoke
+
+</p>
+<pre class="screen">
+bjam release
+</pre>
+<p>
+
+ Note that debug and release variants are created in different
+ directories, so you can switch between variants or even build
+ multiple variants at once, without any unnecessary
+ recompilation. Let's extend the example by adding another line
+ to our project's <code class="filename">Jamroot</code>:
+
+</p>
+<pre class="programlisting">
+exe hello2 : hello.cpp ;
+</pre>
+<p>
+
+ Now let us build both the debug and release variants of our project
+ again:
+
+</p>
+<pre class="screen">
+bjam debug release
+</pre>
+<p>
+
+ Note that two variants of <code class="filename">hello2</code> are linked.
+ Since we have already built both variants
+ of <code class="filename">hello</code>, hello.cpp won't be recompiled;
+ instead the existing object files will just be linked into the
+ corresponding variants of <code class="filename">hello2</code>. Now
+ let's remove all the built products:
+
+</p>
+<pre class="screen">
+bjam --clean debug release
+</pre>
+<p>
+
+ It's also possible to build or clean specific targets. The
+ following two commands, respectively, build or clean only the
+ debug version of <code class="filename">hello2</code>.
+
+</p>
+<pre class="screen">
+bjam hello2
+bjam --clean hello2
+</pre>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="installation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.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="tutorial/properties.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/conditions.html b/doc/html/bbv2/tutorial/conditions.html
new file mode 100644
index 0000000000..618c457896
--- /dev/null
+++ b/doc/html/bbv2/tutorial/conditions.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Conditions and alternatives</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="linkage.html" title="Static and shared libaries">
+<link rel="next" href="prebuilt.html" title="Prebuilt targets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="linkage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="prebuilt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.conditions"></a>Conditions and alternatives</h2></div></div></div>
+<p>Sometimes, particular relationships need to be maintained
+ among a target's build properties. This can be achieved with
+ <em class="firstterm">conditional
+ requirement</em>. For example, you might want to set
+ specific <code class="computeroutput">#defines</code> when a library is built as shared,
+ or when a target's <code class="computeroutput">release</code> variant is built in
+ release mode.
+ </p>
+<pre class="programlisting">
+lib network : network.cpp
+ : <span class="bold"><strong>&lt;link&gt;shared:&lt;define&gt;NEWORK_LIB_SHARED</strong></span>
+ &lt;variant&gt;release:&lt;define&gt;EXTRA_FAST
+ ;
+</pre>
+<p>
+
+ In the example above, whenever <code class="filename">network</code> is
+ built with <code class="computeroutput">&lt;link&gt;shared</code>,
+ <code class="computeroutput">&lt;define&gt;NEWORK_LIB_SHARED</code> will be in its
+ properties, too.
+ </p>
+<p>
+ Sometimes the ways a target is built are so different that
+ describing them using conditional requirements would be
+ hard. For example, imagine that a library actually uses
+ different source files depending on the toolset used to build
+ it. We can express this situation using <em class="firstterm">target
+ alternatives</em>:
+</p>
+<pre class="programlisting">
+lib demangler : dummy_demangler.cpp ; # alternative 1
+lib demangler : demangler_gcc.cpp : &lt;toolset&gt;gcc ; # alternative 2
+lib demangler : demangler_msvc.cpp : &lt;toolset&gt;msvc ; # alternative 3
+</pre>
+<p>
+ In the example above, when built with <code class="literal">gcc</code>
+ or <code class="literal">msvc</code>, <code class="filename">demangler</code>
+ will use a source file specific to the toolset. Otherwise, it
+ will use a generic source file,
+ <code class="filename">dummy_demangler.cpp</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="linkage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="prebuilt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/hierarchy.html b/doc/html/bbv2/tutorial/hierarchy.html
new file mode 100644
index 0000000000..671a8e4e07
--- /dev/null
+++ b/doc/html/bbv2/tutorial/hierarchy.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Project Hierarchies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="properties.html" title="Properties">
+<link rel="next" href="libs.html" title="Dependent Targets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="properties.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="libs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.hierarchy"></a>Project Hierarchies</h2></div></div></div>
+<p>So far we've only considered examples with one project
+ (i.e. with one user-written Boost.Jam file,
+ <code class="filename">Jamroot</code>). A typical large codebase would be
+ composed of many projects organized into a tree. The top of the
+ tree is called the <em class="firstterm">project root</em>. Every
+ subproject is defined by a file called
+ <code class="filename">Jamfile</code> in a descendant directory of the
+ project root. The parent project of a subproject is defined by
+ the nearest <code class="filename">Jamfile</code> or
+ <code class="filename">Jamroot</code> file in an ancestor directory. For
+ example, in the following directory layout:
+
+</p>
+<pre class="screen">
+top/
+ |
+ +-- Jamroot
+ |
+ +-- app/
+ | |
+ | +-- Jamfile
+ | `-- app.cpp
+ |
+ `-- util/
+ |
+ +-- foo/
+ . |
+ . +-- Jamfile
+ . `-- bar.cpp
+</pre>
+<p>
+
+ the project root is <code class="filename">top/</code>. Because there is
+ no <code class="filename">Jamfile</code> in
+ <code class="filename">top/util/</code>, the projects in
+ <code class="filename">top/app/</code> and
+ <code class="filename">top/util/foo/</code> are immediate children of the
+ root project.
+
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>
+ When we refer to a &#8220;Jamfile,&#8221; set in normal
+ type, we mean a file called either
+ <code class="filename">Jamfile</code> or
+ <code class="filename">Jamroot</code>. When we need to be more
+ specific, the filename will be set as
+ &#8220;<code class="filename">Jamfile</code>&#8221; or
+ &#8220;<code class="filename">Jamroot</code>.&#8221;
+ </p>
+</div>
+<p>
+ Projects inherit all attributes (such as requirements)
+ from their parents. Inherited requirements are combined with
+ any requirements specified by the sub-project.
+ For example, if <code class="filename">top/Jamroot</code> has
+
+</p>
+<pre class="programlisting">
+&lt;include&gt;/home/ghost/local
+</pre>
+<p>
+
+ in its requirements, then all of its sub-projects will have it
+ in their requirements, too. Of course, any project can add
+ include paths to those specified by its parents. <sup>[<a name="id1701983" href="#ftn.id1701983">5</a>]</sup>
+ More details can be found in
+ <a href="../advanced/jamfiles.html#bbv2.advanced.projects" title="Projects">the section called &#8220;Projects&#8221;</a>.
+ </p>
+<p>
+ Invoking <span><strong class="command">bjam</strong></span> without explicitly specifying
+ any targets on the command-line builds the project rooted in the
+ current directory. Building a project does not automatically
+ cause its sub-projects to be built unless the parent project's
+ Jamfile explicitly requests it. In our example,
+ <code class="filename">top/Jamroot</code> might contain:
+
+</p>
+<pre class="programlisting">
+build-project app ;
+</pre>
+<p>
+
+ which would cause the project in <code class="filename">top/app/</code>
+ to be built whenever the project in <code class="filename">top/</code> is
+ built. However, targets in <code class="filename">top/util/foo/</code>
+ will be built only if they are needed by targets in
+ <code class="filename">top/</code> or <code class="filename">top/app/</code>.
+ </p>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id1701983" href="#id1701983">5</a>] </sup>Many
+ features will be overridden,
+ rather than added-to, in sub-projects. See <a href="../reference/definitions.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a> for more
+ information</p></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="properties.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="libs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/libs.html b/doc/html/bbv2/tutorial/libs.html
new file mode 100644
index 0000000000..85c8535e3c
--- /dev/null
+++ b/doc/html/bbv2/tutorial/libs.html
@@ -0,0 +1,170 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Dependent Targets</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="hierarchy.html" title="Project Hierarchies">
+<link rel="next" href="linkage.html" title="Static and shared libaries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hierarchy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="linkage.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.libs"></a>Dependent Targets</h2></div></div></div>
+<p>
+ Targets that are &#8220;needed&#8221; by other targets are called
+ <em class="firstterm">dependencies</em> of those other targets. The
+ targets that need the other targets are called
+ <em class="firstterm">dependent</em> targets.
+ </p>
+<p>To get a feeling of target dependencies, let's continue the
+ above example and see how <code class="filename">top/app/Jamfile</code> can
+ use libraries from <code class="filename">top/util/foo</code>. If
+ <code class="filename">top/util/foo/Jamfile</code> contains
+
+</p>
+<pre class="programlisting">
+lib bar : bar.cpp ;
+</pre>
+<p>
+
+ then to use this library in <code class="filename">top/app/Jamfile</code>, we can
+ write:
+
+</p>
+<pre class="programlisting">
+exe app : app.cpp ../util/foo//bar ;
+</pre>
+<p>
+
+ While <code class="computeroutput">app.cpp</code> refers to a regular source file,
+ <code class="computeroutput">../util/foo//bar</code> is a reference to another target:
+ a library <code class="filename">bar</code> declared in the Jamfile at
+ <code class="filename">../util/foo</code>.
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>Some other build system have special syntax for listing dependent
+ libraries, for example <code class="varname">LIBS</code> variable. In Boost.Build,
+ you just add the library to the list of sources.
+ </p>
+</div>
+<p>Suppose we build <code class="filename">app</code> with:
+ </p>
+<pre class="screen">
+bjam app optimization=full define=USE_ASM
+ </pre>
+<p>
+ Which properties will be used to build <code class="computeroutput">foo</code>? The answer is
+ that some features are
+ <em class="firstterm">propagated</em>&#8212;Boost.Build attempts to use
+ dependencies with the same value of propagated features. The
+ <code class="varname">&lt;optimization&gt;</code> feature is propagated, so both
+ <code class="filename">app</code> and <code class="filename">foo</code> will be compiled
+ with full optimization. But <code class="varname">&lt;define&gt;</code> is not
+ propagated: its value will be added as-is to the compiler flags for
+ <code class="filename">a.cpp</code>, but won't affect <code class="filename">foo</code>.
+ </p>
+<p>Let's improve this project further.
+ The library
+ probably has some headers that must be used when compiling
+ <code class="filename">app.cpp</code>. We could manually add the necessary
+ <code class="computeroutput">#include</code> paths to <code class="filename">app</code>'s
+ requirements as values of the
+ <code class="varname">&lt;include&gt;</code> feature, but then this work will
+ be repeated for all programs
+ that use <code class="filename">foo</code>. A better solution is to modify
+ <code class="filename">util/foo/Jamfile</code> in this way:
+
+</p>
+<pre class="programlisting">
+project
+ : usage-requirements &lt;include&gt;.
+ ;
+
+lib foo : foo.cpp ;
+</pre>
+<p>
+
+ Usage requirements are applied not to the target being declared
+ but to its
+ dependents. In this case, <code class="literal">&lt;include&gt;.</code> will be applied to all
+ targets that directly depend on <code class="filename">foo</code>.
+ </p>
+<p>Another improvement is using symbolic identifiers to refer to
+ the library, as opposed to <code class="filename">Jamfile</code> location.
+ In a large project, a library can be used by many targets, and if
+ they all use <code class="filename">Jamfile</code> location,
+ a change in directory organization entails much work.
+ The solution is to use project ids&#8212;symbolic names
+ not tied to directory layout. First, we need to assign a project id by
+ adding this code to
+ <code class="filename">Jamroot</code>:</p>
+<pre class="programlisting">
+use-project /library-example/foo : util/foo ;
+ </pre>
+<p>Second, we modify <code class="filename">app/Jamfile</code> to use the
+ project id:
+
+</p>
+<pre class="programlisting">
+exe app : app.cpp /library-example/foo//bar ;
+</pre>
+<p>
+The <code class="filename">/library-example/foo//bar</code> syntax is used
+ to refer to the target <code class="filename">bar</code> in
+ the project with id <code class="filename">/library-example/foo</code>.
+ We've achieved our goal&#8212;if the library is moved to a different
+ directory, only <code class="filename">Jamroot</code> must be modified.
+ Note that project ids are global&#8212;two Jamfiles are not
+ allowed to assign the same project id to different directories.
+
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>If you want all applications in some project to link
+ to a certain library, you can avoid having to specify it directly the sources of every
+ target by using the
+ <code class="varname">&lt;source&gt;</code> property. For example, if <code class="filename">/boost/filesystem//fs</code>
+ should be linked to all applications in your project, you can add
+ <code class="computeroutput">&lt;source&gt;/boost/filesystem//fs</code> to the project's requirements, like this:</p>
+<pre class="programlisting">
+project
+ : requirements &lt;source&gt;/boost/filesystem//fs
+ ;
+ </pre>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hierarchy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="linkage.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/linkage.html b/doc/html/bbv2/tutorial/linkage.html
new file mode 100644
index 0000000000..cbbaab34d4
--- /dev/null
+++ b/doc/html/bbv2/tutorial/linkage.html
@@ -0,0 +1,149 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Static and shared libaries</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="libs.html" title="Dependent Targets">
+<link rel="next" href="conditions.html" title="Conditions and alternatives">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="conditions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.linkage"></a>Static and shared libaries</h2></div></div></div>
+<p>Libraries can be either
+ <span class="emphasis"><em>static</em></span>, which means they are included in executable
+ files that use them, or <span class="emphasis"><em>shared</em></span> (a.k.a.
+ <span class="emphasis"><em>dynamic</em></span>), which are only referred to from executables,
+ and must be available at run time. Boost.Build can create and use both kinds.
+ </p>
+<p>The kind of library produced from a <code class="computeroutput">lib</code> target is
+ determined by the value of the <code class="varname">link</code> feature. Default
+ value is <code class="literal">shared</code>, and to build static library, the value
+ should be <code class="literal">static</code>. You can either requiest static build
+ on the command line:
+ </p>
+<pre class="screen">
+bjam link=static
+ </pre>
+<p>
+ or in the library's requirements:
+ </p>
+<pre class="programlisting">
+lib l : l.cpp : &lt;link&gt;static ;
+ </pre>
+<p>
+ We can also use the <code class="varname">&lt;link&gt;</code> property
+ to express linking requirements on a per-target basis.
+ For example, if a particular executable can be correctly built
+ only with the static version of a library, we can qualify the
+ executable's <a href="../reference/definitions.html#bbv2.reference.targets.references">target
+ reference</a> to the library as follows:
+
+</p>
+<pre class="programlisting">
+exe important : main.cpp helpers/&lt;link&gt;static ;</pre>
+<p>
+
+ No matter what arguments are specified on the <span><strong class="command">bjam</strong></span>
+ command-line, <code class="filename">important</code> will only be linked with
+ the static version of <code class="filename">helpers</code>.
+ </p>
+<p>
+ Specifying properties in target references is especially useful if you
+ use a library defined in some other project (one you can't
+ change) but you still want static (or dynamic) linking to that library
+ in all cases. If that library is used by many targets,
+ you <span class="emphasis"><em>could</em></span> use target references
+ everywhere:
+
+ </p>
+<pre class="programlisting">
+exe e1 : e1.cpp /other_project//bar/&lt;link&gt;static ;
+exe e10 : e10.cpp /other_project//bar/&lt;link&gt;static ;</pre>
+<p>
+
+ but that's far from being convenient. A better approach is
+ to introduce a level of indirection. Create a local
+ <span class="type">alias</span> target that refers to the static (or
+ dynamic) version of <code class="filename">foo</code>:
+
+ </p>
+<pre class="programlisting">
+alias foo : /other_project//bar/&lt;link&gt;static ;
+exe e1 : e1.cpp foo ;
+exe e10 : e10.cpp foo ;</pre>
+<p>
+
+ The <a href="../advanced/builtins/targets.html#bbv2.builtins.alias" title="Alias"><code class="computeroutput">alias</code></a>
+ rule is specifically used to rename a reference to a target and possibly
+ change the properties.
+
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>
+ When one library uses another, you put the second library is
+ the source list of the first. For example:
+ </p>
+<pre class="programlisting">
+lib utils : utils.cpp /boost/filesystem//fs ;
+lib core : core.cpp utils ;
+exe app : app.cpp core ;</pre>
+<p>
+ This works no matter what kind of linking is used. When
+ <code class="filename">core</code> is built as a shared library, it is linked
+ directly into <code class="filename">utils</code>. Static libraries can't
+ link to other libraries, so when <code class="filename">core</code> is built
+ as a static library, its dependency on <code class="filename">utils</code> is passed along to
+ <code class="filename">core</code>'s dependents, causing
+ <code class="filename">app</code> to be linked with both
+ <code class="filename">core</code> and <code class="filename">utils</code>."
+ </p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>(Note for non-UNIX system). Typically, shared libraries must be
+ installed to a directory in the dynamic linker's search
+ path. Otherwise, applications that use shared libraries can't be
+ started. On Windows, the dynamic linker's search path is given by the
+ <code class="envar">PATH</code> environment variable. This restriction is lifted
+ when you use Boost.Build testing facilities&#8212;the
+ <code class="envar">PATH</code> variable will be automatically adjusted before
+ running executable.
+ </p>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="conditions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/prebuilt.html b/doc/html/bbv2/tutorial/prebuilt.html
new file mode 100644
index 0000000000..472445613e
--- /dev/null
+++ b/doc/html/bbv2/tutorial/prebuilt.html
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Prebuilt targets</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="conditions.html" title="Conditions and alternatives">
+<link rel="next" href="../advanced.html" title="Chapter 24. User documentation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="conditions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="../advanced.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.prebuilt"></a>Prebuilt targets</h2></div></div></div>
+<p>
+ To link to libraries whose build instructions aren't given in a Jamfile,
+ you need to create <code class="computeroutput">lib</code> targets with an appropriate
+ <code class="varname">file</code> property. Target alternatives can be used to
+ associate multiple library files with a single conceptual target. For
+ example:
+</p>
+<pre class="programlisting">
+# util/lib2/Jamfile
+lib lib2
+ :
+ : &lt;file&gt;lib2_release.a &lt;variant&gt;release
+ ;
+
+lib lib2
+ :
+ : &lt;file&gt;lib2_debug.a &lt;variant&gt;debug
+ ;
+</pre>
+<p>
+
+ This example defines two alternatives for <code class="filename">lib2</code>, and
+ for each one names a prebuilt file. Naturally, there are no sources.
+ Instead, the <code class="varname">&lt;file&gt;</code> feature is used to specify
+ the file name.
+ </p>
+<p>
+ Once a prebuilt target has been declared, it can be used just like any other target:
+
+</p>
+<pre class="programlisting">
+exe app : app.cpp ../util/lib2//lib2 ;
+</pre>
+<p>
+
+ As with any target, the alternative selected depends on the
+ properties propagated from <code class="filename">lib2</code>'s dependents.
+ If we build the the release and debug versions of <code class="filename">app</code> will be linked
+ with <code class="filename">lib2_release.a</code> and <code class="filename">lib2_debug.a</code>, respectively.
+
+ </p>
+<p>
+ System libraries&#8212;those that are automatically found by
+ the toolset by searching through some set of predetermined
+ paths&#8212;should be declared almost like regular ones:
+
+</p>
+<pre class="programlisting">
+lib pythonlib : : &lt;name&gt;python22 ;
+</pre>
+<p>
+
+ We again don't specify any sources, but give a
+ <code class="varname">name</code> that should be passed to the
+ compiler. If the gcc toolset were used to link an executable
+ target to <code class="filename">pythonlib</code>, <code class="option">-lpython22</code>
+ would appear in the command line (other compilers may use
+ different options).
+ </p>
+<p>
+ We can also specify where the toolset should look for the library:
+
+</p>
+<pre class="programlisting">
+lib pythonlib : : &lt;name&gt;python22 &lt;search&gt;/opt/lib ;
+</pre>
+<p>
+
+ And, of course, target alternatives can be used in the usual way:
+
+</p>
+<pre class="programlisting">
+lib pythonlib : : &lt;name&gt;python22 &lt;variant&gt;release ;
+lib pythonlib : : &lt;name&gt;python22_d &lt;variant&gt;debug ;
+</pre>
+<p>A more advanced use of prebuilt targets is described in <a href="../recipies/site-config.html" title="Targets in site-config.jam">the section called &#8220;Targets in site-config.jam&#8221;</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="conditions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="../advanced.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bbv2/tutorial/properties.html b/doc/html/bbv2/tutorial/properties.html
new file mode 100644
index 0000000000..560c51adc5
--- /dev/null
+++ b/doc/html/bbv2/tutorial/properties.html
@@ -0,0 +1,173 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Properties</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="prev" href="../tutorial.html" title="Chapter 23. Tutorial">
+<link rel="next" href="hierarchy.html" title="Project Hierarchies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="hierarchy.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.tutorial.properties"></a>Properties</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="properties.html#bbv2.tutorial.properties.requirements">Build Requests and Target Requirements</a></span></dt>
+<dt><span class="section"><a href="properties.html#bbv2.tutorial.properties.project_attributes">Project Attributes</a></span></dt>
+</dl></div>
+<p>
+ To portably represent aspects of target configuration such as
+ debug and release variants, or single- and multi-threaded
+ builds, Boost.Build uses <em class="firstterm">features</em> with
+ associated <em class="firstterm">values</em>. For
+ example, the <code class="computeroutput">debug-symbols</code> feature can have a value of <code class="computeroutput">on</code> or
+ <code class="computeroutput">off</code>. A <em class="firstterm">property</em> is just a (feature,
+ value) pair. When a user initiates a build, Boost.Build
+ automatically translates the requested properties into appropriate
+ command-line flags for invoking toolset components like compilers
+ and linkers.</p>
+<p>There are many built-in features that can be combined to
+ produce arbitrary build configurations. The following command
+ builds the project's <code class="computeroutput">release</code> variant with inlining
+ disabled and debug symbols enabled:
+
+</p>
+<pre class="screen">
+bjam release inlining=off debug-symbols=on
+</pre>
+<p>Properties on the command-line are specified with the syntax:
+
+</p>
+<pre class="screen"><em class="replaceable"><code>feature-name</code></em>=<em class="replaceable"><code>feature-value</code></em></pre>
+<p>The <code class="option">release</code> and <code class="option">debug</code> that we've seen
+ in <span><strong class="command">bjam</strong></span> invocations are just a shorthand way to
+ specify values of the <code class="varname">variant</code> feature. For example, the command
+ above could also have been written this way:
+
+ </p>
+<pre class="screen">
+bjam variant=release inlining=off debug-symbols=on
+ </pre>
+<p><code class="varname">variant</code> is so commonly-used that it has
+ been given special status as an <em class="firstterm">implicit</em>
+ feature&#8212;Boost.Build will deduce the its identity just
+ from the name of one of its values.
+ </p>
+<p>
+ A complete description of features can be found in <a href="../reference/definitions.html#bbv2.reference.features" title="Features and properties">the section called &#8220;Features and properties&#8221;</a>.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.tutorial.properties.requirements"></a>Build Requests and Target Requirements</h3></div></div></div>
+<p>
+ The set of properties specified on the command line constitute
+ a <em class="firstterm">build request</em>&#8212;a description of
+ the desired properties for building the requested targets (or,
+ if no targets were explicitly requested, the project in the
+ current directory). The <span class="emphasis"><em>actual</em></span>
+ properties used for building targets are typically a
+ combination of the build request and properties derived from
+ the project's <code class="filename">Jamroot</code> (and its other
+ Jamfiles, as described in <a href="hierarchy.html" title="Project Hierarchies">the section called &#8220;Project Hierarchies&#8221;</a>). For example, the
+ locations of <code class="computeroutput">#include</code>d header files are normally
+ not specified on the command-line, but described in
+ Jamfiles as <em class="firstterm">target
+ requirements</em> and automatically combined with the
+ build request for those targets. Multithread-enabled
+ compilation is another example of a typical target
+ requirement. The Jamfile fragment below
+ illustrates how these requirements might be specified.
+ </p>
+<pre class="programlisting">
+exe hello
+ : hello.cpp
+ : &lt;include&gt;boost &lt;threading&gt;multi
+ ;
+</pre>
+<p>
+ When <code class="filename">hello</code> is built, the two
+ requirements specified above will always be present.
+ If the build request given on the <span><strong class="command">bjam</strong></span>
+ command-line explictly contradicts a target's requirements,
+ the target requirements usually override (or, in the case of
+ &#8220;free&#8221; features like
+ <code class="varname">&lt;include&gt;</code>,
+ <sup>[<a name="id1701753" href="#ftn.id1701753">4</a>]</sup>
+ augments) the build request.
+
+ </p>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Tip</h3>
+<p>The value of the <code class="varname">&lt;include&gt;</code> feature is
+ relative to the location of <code class="filename">Jamroot</code> where it's
+ used.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.tutorial.properties.project_attributes"></a>Project Attributes</h3></div></div></div>
+<p>
+ If we want the same requirements for our other
+ target, <code class="filename">hello2</code>, we could simply duplicate
+ them. However, as projects grow, that approach leads to a great
+ deal of repeated boilerplate in Jamfiles.
+
+ Fortunately, there's a better way. Each project can specify a
+ set of <em class="firstterm">attributes</em>, including
+ requirements:
+
+</p>
+<pre class="programlisting">
+project
+ : requirements &lt;include&gt;/home/ghost/Work/boost &lt;threading&gt;multi
+ ;
+
+exe hello : hello.cpp ;
+exe hello2 : hello.cpp ;
+</pre>
+<p>
+
+ The effect would be as if we specified the same requirement for
+ both <code class="filename">hello</code> and <code class="filename">hello2</code>.
+ </p>
+</div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id1701753" href="#id1701753">4</a>] </sup>
+See <a href="../reference/definitions.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a></p></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="hierarchy.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/bool_switch.html b/doc/html/bool_switch.html
new file mode 100644
index 0000000000..7319436d3d
--- /dev/null
+++ b/doc/html/bool_switch.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function bool_switch</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="wvalue.html" title="Function wvalue">
+<link rel="next" href="abstract_variables_map.html" title="Class abstract_variables_map">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wvalue.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="abstract_variables_map.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="bool_switch"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function bool_switch</span></h2>
+<p>boost::program_options::bool_switch &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL <a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; <span class="bold"><strong>bool</strong></span> &gt; *</span> bool_switch();
+<span class="type">BOOST_PROGRAM_OPTIONS_DECL <a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; <span class="bold"><strong>bool</strong></span> &gt; *</span> bool_switch(<span class="bold"><strong>bool</strong></span> * v);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276862"></a><h2>Description</h2>
+<p>Works the same way as the 'value' function, but the created value_semantic won't accept any explicit value. So, if the option is present on the command line, the value will be 'true'. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wvalue.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="abstract_variables_map.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/any.html b/doc/html/boost/any.html
new file mode 100644
index 0000000000..37bc66486a
--- /dev/null
+++ b/doc/html/boost/any.html
@@ -0,0 +1,186 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class any</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../any/reference.html#header.boost.any.hpp" title="Header &lt;boost/any.hpp&gt;">
+<link rel="prev" href="../bad_any_cast.html" title="Class bad_any_cast">
+<link rel="next" href="../any_cast.html" title="Function any_cast">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bad_any_cast.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any/reference.html#header.boost.any.hpp"><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="../any_cast.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.any"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class any</span></h2>
+<p>boost::any &#8212; A class whose instances can hold instances of any
+ type that satisfies <a href="../any/reference.html#any.ValueType" title="ValueType requirements">ValueType</a>
+ requirements.</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"><strong>class</strong></span> any {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="any.html#boost.anyconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="any.html#id691864-bb">any</a>();
+  <a href="any.html#id691852-bb">any</a>(<span class="bold"><strong>const</strong></span> <a href="any.html" title="Class any">any</a> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <a href="any.html#id759379-bb">any</a>(<span class="bold"><strong>const</strong></span> ValueType &amp;);
+  <span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a href="any.html#id755290-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="any.html" title="Class any">any</a> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a href="any.html#id591278-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> ValueType &amp;);
+  <a href="any.html#id756388-bb">~any</a>();
+
+  <span class="emphasis"><em>// <a href="any.html#id720717-bb">modifiers</a></em></span>
+  <span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a href="any.html#id722843-bb">swap</a>(<a href="any.html" title="Class any">any</a> &amp;);
+
+  <span class="emphasis"><em>// <a href="any.html#id761589-bb">queries</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="any.html#id761592-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::type_info &amp;</span> <a href="any.html#id761615-bb">type</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id970852"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id970855"></a><h3>
+<a name="boost.anyconstruct-copy-destruct"></a><code class="computeroutput">any</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id691864-bb"></a>any();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="any.html#id761592-bb">empty</a>()</code></p>
+</li>
+<li>
+<pre class="literallayout"><a name="id691852-bb"></a>any(<span class="bold"><strong>const</strong></span> <a href="any.html" title="Class any">any</a> &amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Copy constructor that copies content of
+ <code class="computeroutput">other</code> into new instance, so that any content
+ is equivalent in both type and value to the content of
+ <code class="computeroutput">other</code>, or empty if <code class="computeroutput">other</code> is
+ empty. <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with a
+ <code class="computeroutput">std::bad_alloc</code>
+ exception or any exceptions arising from the copy
+ constructor of the contained type.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <a name="id759379-bb"></a>any(<span class="bold"><strong>const</strong></span> ValueType &amp; value);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Makes a copy of <code class="computeroutput">value</code>, so
+ that the initial content of the new instance is equivalent
+ in both type and value to
+ <code class="computeroutput">value</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput">std::bad_alloc</code>
+ or any exceptions arising from the copy constructor of the
+ contained type.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a name="id755290-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="any.html" title="Class any">any</a> &amp; rhs);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Copies content of <code class="computeroutput">rhs</code> into
+ current instance, discarding previous content, so that the
+ new content is equivalent in both type and value to the
+ content of <code class="computeroutput">rhs</code>, or empty if
+ <code class="computeroutput">rhs.<a href="any.html#id761592-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput">std::bad_alloc</code>
+ or any exceptions arising from the copy constructor of the
+ contained type. Assignment satisfies the strong guarantee
+ of exception safety.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a name="id591278-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> ValueType &amp; rhs);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Makes a copy of <code class="computeroutput">rhs</code>,
+ discarding previous content, so that the new content of is
+ equivalent in both type and value to
+ <code class="computeroutput">rhs</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput">std::bad_alloc</code>
+ or any exceptions arising from the copy constructor of the
+ contained type. Assignment satisfies the strong guarantee
+ of exception safety.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id756388-bb"></a>~any();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Releases any and all resources used in
+ management of instance.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Nothing.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id971249"></a><h3>
+<a name="id720717-bb"></a><code class="computeroutput">any</code> modifiers</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><a href="any.html" title="Class any">any</a> &amp;</span> <a name="id722843-bb"></a>swap(<a href="any.html" title="Class any">any</a> &amp; rhs);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Exchange of the contents of
+ <code class="computeroutput">*this</code> and
+ <code class="computeroutput">rhs</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">*this</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Nothing.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id971335"></a><h3>
+<a name="id761589-bb"></a><code class="computeroutput">any</code> queries</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id761592-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if instance is
+ empty, otherwise <code class="computeroutput">false</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::type_info &amp;</span> <a name="id761615-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the <code class="computeroutput">typeid</code> of the
+ contained value if instance is non-empty, otherwise
+ <code class="computeroutput">typeid(void)</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Useful for querying against types known
+ either at compile time or only at
+ runtime.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001 Kevlin Henney</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bad_any_cast.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../any/reference.html#header.boost.any.hpp"><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="../any_cast.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/array.html b/doc/html/boost/array.html
new file mode 100644
index 0000000000..b8f9a38566
--- /dev/null
+++ b/doc/html/boost/array.html
@@ -0,0 +1,351 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template array</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../array/reference.html#header.boost.array.hpp" title="Header &lt;boost/array.hpp&gt;">
+<link rel="prev" href="../array/reference.html" title="Reference">
+<link rel="next" href="../array/rationale.html" title="Design Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array/reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array/reference.html#header.boost.array.hpp"><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="../array/rationale.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.array"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template array</span></h2>
+<p>boost::array &#8212; <p>STL compliant container wrapper for arrays of constant size</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+<span class="bold"><strong>class</strong></span> array {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T                                     value_type;            
+  <span class="bold"><strong>typedef</strong></span> T*                                    iterator;              
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>const</strong></span> T*                              const_iterator;        
+  <span class="bold"><strong>typedef</strong></span> std::reverse_iterator&lt;iterator&gt;       reverse_iterator;      
+  <span class="bold"><strong>typedef</strong></span> std::reverse_iterator&lt;const_iterator&gt; const_reverse_iterator;
+  <span class="bold"><strong>typedef</strong></span> T&amp;                                    reference;             
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>const</strong></span> T&amp;                              const_reference;       
+  <span class="bold"><strong>typedef</strong></span> std::size_t                           size_type;             
+  <span class="bold"><strong>typedef</strong></span> std::ptrdiff_t                        difference_type;       
+
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> size_type static_size = N;
+
+  <span class="emphasis"><em>// <a href="array.html#boost.arrayconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; array&amp; <a href="array.html#id697625-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;U, N&gt;&amp;);
+
+  <span class="emphasis"><em>// <a href="array.html#id689734-bb">iterator support</a></em></span>
+  <span class="type">iterator</span> <a href="array.html#id725473-bb">begin</a>();
+  <span class="type">const_iterator</span> <a href="array.html#id656084-bb">begin</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">iterator</span> <a href="array.html#id684939-bb">end</a>();
+  <span class="type">const_iterator</span> <a href="array.html#id721093-bb">end</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="array.html#id661089-bb">reverse iterator support</a></em></span>
+  <span class="type">reverse_iterator</span> <a href="array.html#id733347-bb">rbegin</a>();
+  <span class="type">const_reverse_iterator</span> <a href="array.html#id759984-bb">rbegin</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">reverse_iterator</span> <a href="array.html#id728793-bb">rend</a>();
+  <span class="type">const_reverse_iterator</span> <a href="array.html#id692037-bb">rend</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="array.html#id727882-bb">capacity</a></em></span>
+  <span class="type">size_type</span> <a href="array.html#id686133-bb">size</a>();
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id751779-bb">empty</a>();
+  <span class="type">size_type</span> <a href="array.html#id686623-bb">max_size</a>();
+
+  <span class="emphasis"><em>// <a href="array.html#id379518-bb">element access</a></em></span>
+  <span class="type">reference</span> <a href="array.html#id686789-bb"><span class="bold"><strong>operator</strong></span>[]</a>(size_type);
+  <span class="type">const_reference</span> <a href="array.html#id752140-bb"><span class="bold"><strong>operator</strong></span>[]</a>(size_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">reference</span> <a href="array.html#id689442-bb">at</a>(size_type);
+  <span class="type">const_reference</span> <a href="array.html#id682666-bb">at</a>(size_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">reference</span> <a href="array.html#id763244-bb">front</a>();
+  <span class="type">const_reference</span> <a href="array.html#id763251-bb">front</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">reference</span> <a href="array.html#id763276-bb">back</a>();
+  <span class="type">const_reference</span> <a href="array.html#id763283-bb">back</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> T*</span> <a href="array.html#id763305-bb">data</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T*</span> <a href="array.html#id763323-bb">c_array</a>();
+
+  <span class="emphasis"><em>// <a href="array.html#id763341-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="array.html#id763345-bb">swap</a>(<a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="array.html#id763383-bb">assign</a>(<span class="bold"><strong>const</strong></span> T&amp;);
+
+  T elems[N];
+};
+
+<span class="emphasis"><em>// <a href="array.html#id763417-bb">specialized algorithms</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="array.html#id763420">swap</a>(<a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+
+<span class="emphasis"><em>// <a href="array.html#id763475-bb">comparisons</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763478"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763537"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763586"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763648"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763696"><span class="bold"><strong>operator</strong></span>&lt;=</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="array.html#id763744"><span class="bold"><strong>operator</strong></span>&gt;=</a>(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp;);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id973340"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id973343"></a><h3>
+<a name="boost.arrayconstruct-copy-destruct"></a><code class="computeroutput">array</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; array&amp; <a name="id697625-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;U, N&gt;&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">std::copy(rhs.<a href="array.html#id685681-bb">begin</a>(),rhs.<a href="array.html#id732428-bb">end</a>(), <a href="array.html#id685681-bb">begin</a>())</code></p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id973441"></a><h3>
+<a name="id689734-bb"></a><code class="computeroutput">array</code> iterator support</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id685681-bb"></a></p>
+<pre class="literallayout"><span class="type">iterator</span> <a name="id725473-bb"></a>begin();
+<span class="type">const_iterator</span> <a name="id656084-bb"></a>begin() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ iterator for the first element<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+<li>
+<p><a name="id732428-bb"></a></p>
+<pre class="literallayout"><span class="type">iterator</span> <a name="id684939-bb"></a>end();
+<span class="type">const_iterator</span> <a name="id721093-bb"></a>end() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ iterator for position after the last element<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id973564"></a><h3>
+<a name="id661089-bb"></a><code class="computeroutput">array</code> reverse iterator support</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id727479-bb"></a></p>
+<pre class="literallayout"><span class="type">reverse_iterator</span> <a name="id733347-bb"></a>rbegin();
+<span class="type">const_reverse_iterator</span> <a name="id759984-bb"></a>rbegin() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ reverse iterator for the first element of reverse iteration</p>
+</li>
+<li>
+<p><a name="id662500-bb"></a></p>
+<pre class="literallayout"><span class="type">reverse_iterator</span> <a name="id728793-bb"></a>rend();
+<span class="type">const_reverse_iterator</span> <a name="id692037-bb"></a>rend() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ reverse iterator for position after the last element in reverse iteration</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id973674"></a><h3>
+<a name="id727882-bb"></a><code class="computeroutput">array</code> capacity</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">size_type</span> <a name="id686133-bb"></a>size();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">N</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id751779-bb"></a>empty();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">N==0</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">size_type</span> <a name="id686623-bb"></a>max_size();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">N</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id973798"></a><h3>
+<a name="id379518-bb"></a><code class="computeroutput">array</code> element access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id685146-bb"></a></p>
+<pre class="literallayout"><span class="type">reference</span> <a name="id686789-bb"></a><span class="bold"><strong>operator</strong></span>[](size_type i);
+<span class="type">const_reference</span> <a name="id752140-bb"></a><span class="bold"><strong>operator</strong></span>[](size_type i) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">i &lt; N</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ element with index <code class="computeroutput">i</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw.</p>
+</li>
+<li>
+<p><a name="id726524-bb"></a></p>
+<pre class="literallayout"><span class="type">reference</span> <a name="id689442-bb"></a>at(size_type i);
+<span class="type">const_reference</span> <a name="id682666-bb"></a>at(size_type i) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ element with index <code class="computeroutput">i</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput">std::range_error</code> if <code class="computeroutput">i &gt;= N</code></p>
+</li>
+<li>
+<p><a name="id763241-bb"></a></p>
+<pre class="literallayout"><span class="type">reference</span> <a name="id763244-bb"></a>front();
+<span class="type">const_reference</span> <a name="id763251-bb"></a>front() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">N &gt; 0</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the first element<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+<li>
+<p><a name="id763273-bb"></a></p>
+<pre class="literallayout"><span class="type">reference</span> <a name="id763276-bb"></a>back();
+<span class="type">const_reference</span> <a name="id763283-bb"></a>back() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">N &gt; 0</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the last element<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> T*</span> <a name="id763305-bb"></a>data() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">elems</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id763323-bb"></a>c_array();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">elems</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id974166"></a><h3>
+<a name="id763341-bb"></a><code class="computeroutput">array</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id763345-bb"></a>swap(<a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">std::swap_ranges(<a href="array.html#id685681-bb">begin</a>(), <a href="array.html#id732428-bb">end</a>(), other.<a href="array.html#id685681-bb">begin</a>())</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ linear in <code class="computeroutput">N</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id763383-bb"></a>assign(<span class="bold"><strong>const</strong></span> T&amp; value);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">std::fill_n(<a href="array.html#id685681-bb">begin</a>(), N, value)</code></p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id974302"></a><h3>
+<a name="id763417-bb"></a><code class="computeroutput">array</code> specialized algorithms</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id763420"></a>swap(<a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">x.<a href="array.html#id763345-bb">swap</a>(y)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ will not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id974394"></a><h3>
+<a name="id763475-bb"></a><code class="computeroutput">array</code> comparisons</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763478"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">std::equal(x.<a href="array.html#id685681-bb">begin</a>(), x.<a href="array.html#id732428-bb">end</a>(), y.<a href="array.html#id685681-bb">begin</a>())</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763537"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">!(x == y)</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763586"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">std::lexicographical_compare(x.<a href="array.html#id685681-bb">begin</a>(), x.<a href="array.html#id732428-bb">end</a>(), y.<a href="array.html#id685681-bb">begin</a>(), y.<a href="array.html#id732428-bb">end</a>())</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763648"></a><span class="bold"><strong>operator</strong></span>&gt;(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">y &lt; x</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763696"></a><span class="bold"><strong>operator</strong></span>&lt;=(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">!(y &lt; x)</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, std::size_t N&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id763744"></a><span class="bold"><strong>operator</strong></span>&gt;=(<span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; x, <span class="bold"><strong>const</strong></span> <a href="array.html" title="Class template array">array</a>&lt;T, N&gt;&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">!(x &lt; y)</code></p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Nicolai M. Josuttis</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array/reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../array/reference.html#header.boost.array.hpp"><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="../array/rationale.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/date_time/date.html b/doc/html/boost/date_time/date.html
new file mode 100644
index 0000000000..0a50782b2d
--- /dev/null
+++ b/doc/html/boost/date_time/date.html
@@ -0,0 +1,137 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../date_time/doxy.html#id823767" title="Header &lt;boost/date_time/date.hpp&gt;">
+<link rel="prev" href="../../simple_exception_policy.html" title="Class template simple_exception_policy">
+<link rel="next" href="../../day_clock.html" title="Class template day_clock">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../simple_exception_policy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time/doxy.html#id823767"><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="../../day_clock.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.date_time.date"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date</span></h2>
+<p>boost::date_time::date &#8212; Representation of timepoint at the one day level resolution. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> calendar, <span class="bold"><strong>typename</strong></span> duration_type_&gt;
+<span class="bold"><strong>class</strong></span> date {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T                          date_type;       
+  <span class="bold"><strong>typedef</strong></span> calendar                   calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar::date_traits_type traits_type;     
+  <span class="bold"><strong>typedef</strong></span> duration_type_             duration_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar::year_type        year_type;       
+  <span class="bold"><strong>typedef</strong></span> calendar::month_type       month_type;      
+  <span class="bold"><strong>typedef</strong></span> calendar::day_type         day_type;        
+  <span class="bold"><strong>typedef</strong></span> calendar::ymd_type         ymd_type;        
+  <span class="bold"><strong>typedef</strong></span> calendar::date_rep_type    date_rep_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar::date_int_type    date_int_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar::day_of_week_type day_of_week_type;
+
+  <span class="emphasis"><em>// <a href="date.html#boost.date_time.dateconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date.html#id802112-bb">date</a>(year_type, month_type, day_type);
+  <a href="date.html#id800062-bb">date</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;);
+  <a href="date.html#id824446-bb">date</a>(date_int_type);
+  <a href="date.html#id1047138-bb">date</a>(date_rep_type);
+
+  <span class="emphasis"><em>// <a href="date.html#id798032-bb">public member functions</a></em></span>
+  <span class="type">year_type</span> <a href="date.html#id906201-bb">year</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="date.html#id872745-bb">month</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_type</span> <a href="date.html#id860779-bb">day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="date.html#id908468-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">ymd_type</span> <a href="date.html#id825616-bb">year_month_day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id697902-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id865087-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id939432-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id834537-bb">is_not_a_date</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id1070079-bb">is_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id833077-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date.html#id801744-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">special_values</span> <a href="date.html#id822819-bb">as_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="date.html#id827653-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="date.html#id831065-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="date.html#id1080637-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) ;
+  <span class="type">date_rep_type</span> <a href="date.html#id1104862-bb">day_count</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="date.html#id863577-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="date.html#id1102041-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) ;
+
+  <span class="emphasis"><em>// <a href="date.html#id824441-bb">protected member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1041062"></a><h2>Description</h2>
+<p>The date template represents an interface shell for a date class that is based on a year-month-day system such as the gregorian or iso systems. It provides basic operations to enable calculation and comparisons.</p>
+<p><span class="bold"><strong>Theory</strong></span></p>
+<p>This date representation fundamentally departs from the C tm struct approach. The goal for this type is to provide efficient date operations (add, subtract) and storage (minimize space to represent) in a concrete class. Thus, the date uses a count internally to represent a particular date. The calendar parameter defines the policies for converting the the year-month-day and internal counted form here. Applications that need to perform heavy formatting of the same date repeatedly will perform better by using the year-month-day representation.</p>
+<p>Internally the date uses a day number to represent the date. This is a monotonic time representation. This representation allows for fast comparison as well as simplifying the creation of writing numeric operations. Essentially, the internal day number is like adjusted julian day. The adjustment is determined by the Epoch date which is represented as day 1 of the calendar. Day 0 is reserved for negative infinity so that any actual date is automatically greater than negative infinity. When a date is constructed from a date or formatted for output, the appropriate conversions are applied to create the year, month, day representations. </p>
+<div class="refsect2" lang="en">
+<a name="id1041081"></a><h3>
+<a name="boost.date_time.dateconstruct-copy-destruct"></a><code class="computeroutput">date</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id802112-bb"></a>date(year_type y, month_type m, day_type d);</pre></li>
+<li><pre class="literallayout"><a name="id800062-bb"></a>date(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd);</pre></li>
+<li>
+<pre class="literallayout"><a name="id824446-bb"></a>date(date_int_type days);</pre>
+<p>This is a private constructor which allows for the creation of new dates. It is not exposed to users since that would require class users to understand the inner workings of the date class. </p>
+</li>
+<li><pre class="literallayout"><a name="id1047138-bb"></a>date(date_rep_type days);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1041167"></a><h3>
+<a name="id798032-bb"></a><code class="computeroutput">date</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">year_type</span> <a name="id906201-bb"></a>year() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id872745-bb"></a>month() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_type</span> <a name="id860779-bb"></a>day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id908468-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_type</span> <a name="id825616-bb"></a>year_month_day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id697902-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> date_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id865087-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> date_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id939432-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id834537-bb"></a>is_not_a_date() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1070079-bb"></a>is_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id833077-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id801744-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">special_values</span> <a name="id822819-bb"></a>as_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id827653-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id831065-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id1080637-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_rep_type</span> <a name="id1104862-bb"></a>day_count() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id863577-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id1102041-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> duration_type &amp; dd) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1041700"></a><h3>
+<a name="id824441-bb"></a><code class="computeroutput">date</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../simple_exception_policy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time/doxy.html#id823767"><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="../../day_clock.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/function.html b/doc/html/boost/function.html
new file mode 100644
index 0000000000..cefef24ab9
--- /dev/null
+++ b/doc/html/boost/function.html
@@ -0,0 +1,402 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template function</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function/reference.html#header.boost.function.hpp" title="Header &lt;boost/function.hpp&gt;">
+<link rel="prev" href="../functionN.html" title="Class template functionN">
+<link rel="next" href="../function_equal.html" title="Function template function_equal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../functionN.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function/reference.html#header.boost.function.hpp"><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="../function_equal.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.function"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template function</span></h2>
+<p>boost::function &#8212; A generalized function pointer that can be used for
+ callbacks or wrapping function objects.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="emphasis"><em> // Function type R (T1, T2, ..., TN)</em></span>
+         <span class="bold"><strong>typename</strong></span> Allocator = std::allocator&lt;<span class="bold"><strong>void</strong></span>&gt; &gt;
+<span class="bold"><strong>class</strong></span> function : <span class="bold"><strong>public</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;R, T1, T2, ..., TN, Allocator&gt; {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> R         result_type;         
+  <span class="bold"><strong>typedef</strong></span> Allocator allocator_type;      
+  <span class="bold"><strong>typedef</strong></span> T1        argument_type;        <span class="emphasis"><em>// If N == 1</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1        first_argument_type;  <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T2        second_argument_type; <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1        arg1_type;           
+  <span class="bold"><strong>typedef</strong></span> T2        arg2_type;           
+     .
+     .
+     .
+  <span class="bold"><strong>typedef</strong></span> TN        argN_type;           
+
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> arity = N;
+
+  <span class="emphasis"><em>// <a href="../lambda.html" title="Chapter 6. Boost.Lambda">Lambda</a> library support</em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Args&gt;
+  <span class="bold"><strong>struct</strong></span> sig {
+    <span class="emphasis"><em>// types</em></span>
+    <span class="bold"><strong>typedef</strong></span> result_type type;
+  };
+
+  <span class="emphasis"><em>// <a href="function.html#boost.functionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="function.html#id1031759-bb">function</a>();
+  <a href="function.html#id1046556-bb">function</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&amp;);
+  <a href="function.html#id1070102-bb">function</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F&gt; <a href="function.html#id835586-bb">function</a>(F);
+  function&amp; <a href="function.html#id800435-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&amp;);
+  function&amp; <a href="function.html#id1077825-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp;);
+  <a href="function.html#id870390-bb">~function</a>();
+
+  <span class="emphasis"><em>// <a href="function.html#id1073652-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="function.html#id801534-bb">swap</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp;);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="function.html#id903961-bb">clear</a>();
+
+  <span class="emphasis"><em>// <a href="function.html#id1112252-bb">capacity</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id972567-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <a href="function.html#id1106579-bb"><span class="bold"><strong>operator</strong></span> safe_bool</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id1106977-bb"><span class="bold"><strong>operator</strong></span>!</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="function.html#id970210-bb">target access</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a href="function.html#id1037337-bb">target</a>();
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a href="function.html#id1003205-bb">target</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id899187-bb">contains</a>(<span class="bold"><strong>const</strong></span> Functor&amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="function.html#id1000460-bb">invocation</a></em></span>
+  <span class="type">result_type</span> <a href="function.html#id966548-bb"><span class="bold"><strong>operator</strong></span>()</a>(arg1_type, arg2_type, ..., argN_type) <span class="bold"><strong>const</strong></span>;
+};
+
+<span class="emphasis"><em>// <a href="function.html#id996764-bb">specialized algorithms</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="function.html#id999224">swap</a>(<a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;, <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+
+<span class="emphasis"><em>// <a href="function.html#id894643-bb">comparison operators</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id1012910-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;, Functor);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id827744-bb"><span class="bold"><strong>operator</strong></span>==</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id937738-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;,
+                  <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id1107517-bb"><span class="bold"><strong>operator</strong></span>==</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+         <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="function.html#id835486-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp;,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id834162-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;, Functor);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id961954-bb"><span class="bold"><strong>operator</strong></span>!=</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id867993-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;,
+                  <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function.html#id1066866-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+         <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="function.html#id966586-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp;,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp;);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1212219"></a><h2>Description</h2>
+<p>Class template <a href="function.html" title="Class template function">function</a> is a thin
+ wrapper around the numbered class templates <a href="../functionN.html" title="Class template functionN">function0</a>, <a href="../functionN.html" title="Class template functionN">function1</a>, etc. It accepts a
+ function type with N arguments and will will derive from
+ <a href="../functionN.html" title="Class template functionN">functionN</a> instantiated with the arguments
+ it receives.</p>
+<p>The semantics of all operations in class template
+ <a href="function.html" title="Class template function">function</a> are equivalent to that of the
+ underlying <a href="../functionN.html" title="Class template functionN">functionN</a> object, although
+ additional member functions are required to allow proper copy
+ construction and copy assignment of function objects.</p>
+<div class="refsect2" lang="en">
+<a name="id1212276"></a><h3>
+<a name="boost.functionconstruct-copy-destruct"></a><code class="computeroutput">function</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1031759-bb"></a>function();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="function.html#id972567-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1046556-bb"></a>function(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Contains a copy of the <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="function.html#id972567-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw unless copying the target of <code class="computeroutput">f</code> throws.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1070102-bb"></a>function(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Contains a copy of the <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="function.html#id972567-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw unless copying the target of <code class="computeroutput">f</code> throws.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F&gt; <a name="id835586-bb"></a>function(F f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ F is a function object Callable from <code class="computeroutput">this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> targets a copy of <code class="computeroutput">f</code> if <code class="computeroutput">f</code> is nonempty, or <code class="computeroutput">this-&gt;<a href="function.html#id972567-bb">empty</a>()</code> if <code class="computeroutput">f</code> is empty.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw when <code class="computeroutput">f</code> is a stateless function object.</p>
+</li>
+<li>
+<pre class="literallayout">function&amp; <a name="id800435-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> targets a copy of <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="function.html#id972567-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw when the target of <code class="computeroutput">f</code> is a stateless function object or a reference to the function object.</p>
+</li>
+<li>
+<pre class="literallayout">function&amp; <a name="id1077825-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> targets a copy of <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="function.html#id972567-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw when the target of <code class="computeroutput">f</code> is a stateless function object or a reference to the function object.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id870390-bb"></a>~function();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If <code class="computeroutput">!this-&gt;<a href="function.html#id972567-bb">empty</a>()</code>, destroys the target of <code class="computeroutput">this</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1212765"></a><h3>
+<a name="id1073652-bb"></a><code class="computeroutput">function</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id801534-bb"></a>swap(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Interchanges the targets of <code class="computeroutput">*this</code> and <code class="computeroutput">f</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id903961-bb"></a>clear();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="function.html#id972567-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1212892"></a><h3>
+<a name="id1112252-bb"></a><code class="computeroutput">function</code> capacity</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id972567-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code> if <code class="computeroutput">this</code> has a target, and <code class="computeroutput">true</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1106579-bb"></a><span class="bold"><strong>operator</strong></span> safe_bool() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A <code class="computeroutput">safe_bool</code> that evaluates <code class="computeroutput">false</code> in a boolean context when <code class="computeroutput">this-&gt;<a href="function.html#id972567-bb">empty</a>()</code>, and <code class="computeroutput">true</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1106977-bb"></a><span class="bold"><strong>operator</strong></span>!() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="function.html#id972567-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1213098"></a><h3>
+<a name="id970210-bb"></a><code class="computeroutput">function</code> target access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id692435-bb"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a name="id1037337-bb"></a>target();
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a name="id1003205-bb"></a>target() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If <code class="computeroutput">this</code> stores a target of type
+ <code class="computeroutput">Functor</code>, returns the address of the
+ target. Otherwise, returns the NULL
+ pointer.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id899187-bb"></a>contains(<span class="bold"><strong>const</strong></span> Functor&amp; f) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if <code class="computeroutput">this-&gt;<a href="function.html#id692435-bb">target</a>&lt;Functor&gt;()</code> is non-NULL and <code class="computeroutput"><a href="../function_equal.html" title="Function template function_equal">function_equal</a>(*(this-&gt;target&lt;Functor&gt;()), f)</code></p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1213293"></a><h3>
+<a name="id1000460-bb"></a><code class="computeroutput">function</code> invocation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type">result_type</span> <a name="id966548-bb"></a><span class="bold"><strong>operator</strong></span>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">f(a1, a2, ..., aN)</code>, where <code class="computeroutput">f</code> is the target of <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ if <code class="computeroutput">R</code> is <code class="computeroutput">void</code>, nothing is returned; otherwise, the return value of the call to <code class="computeroutput">f</code> is returned.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput"><a href="../bad_function_call.html" title="Class bad_function_call">bad_function_call</a></code> if <code class="computeroutput">!this-&gt;<a href="function.html#id972567-bb">empty</a>()</code>. Otherwise, may through any exception thrown by the target function <code class="computeroutput">f</code>.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1213425"></a><h3>
+<a name="id996764-bb"></a><code class="computeroutput">function</code> specialized algorithms</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id999224"></a>swap(<a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f1,
+            <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">f1.<a href="function.html#id801534-bb">swap</a>(f2)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1213524"></a><h3>
+<a name="id894643-bb"></a><code class="computeroutput">function</code> comparison operators</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id1075930"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1012910-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f, Functor g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id827744-bb"></a><span class="bold"><strong>operator</strong></span>==(Functor g, <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id937738-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f,
+                  <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1107517-bb"></a><span class="bold"><strong>operator</strong></span>==(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+         <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id835486-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp; f1,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ True when <code class="computeroutput">f</code> stores an object of
+ type <code class="computeroutput">Functor</code> and one of the following conditions applies:
+ <div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">g</code> is of type
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">f.target&lt;Functor&gt;() == g.<a href="../reference_wrapper.html#id656887-bb">get_pointer</a>()</code>.</li>
+<li>
+<code class="computeroutput">g</code> is not of type
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">function_equals(*(f.target&lt;Functor&gt;()), g)</code>.</li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <code class="computeroutput"><a href="function.html" title="Class template function">function</a></code>
+ objects are not
+ <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The <code class="computeroutput">safe_bool</code> conversion
+ opens a loophole whereby two <code class="computeroutput">function</code>
+ instances can be compared via <code class="computeroutput">==</code>, although this
+ is not feasible to implement. The undefined <code class="computeroutput">void
+ operator==</code> closes the loophole and ensures a
+ compile-time or link-time error.</p>
+</li>
+<li>
+<p><a name="id1066261"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id834162-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f, Functor g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id961954-bb"></a><span class="bold"><strong>operator</strong></span>!=(Functor g, <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id867993-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f,
+                  <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1066866-bb"></a><span class="bold"><strong>operator</strong></span>!=(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+         <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id966586-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp; f1,
+                  <span class="bold"><strong>const</strong></span> <a href="function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ True when <code class="computeroutput">f</code> does not store an
+ object of type <code class="computeroutput">Functor</code> or it stores an object of
+ type <code class="computeroutput">Functor</code> and one of the following conditions
+ applies:
+ <div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">g</code> is of type
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">f.target&lt;Functor&gt;() != g.<a href="../reference_wrapper.html#id656887-bb">get_pointer</a>()</code>.</li>
+<li>
+<code class="computeroutput">g</code> is not of type
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">!function_equals(*(f.target&lt;Functor&gt;()), g)</code>.</li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <code class="computeroutput"><a href="function.html" title="Class template function">function</a></code>
+ objects are not
+ <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The <code class="computeroutput">safe_bool</code> conversion
+ opens a loophole whereby two <code class="computeroutput">function</code>
+ instances can be compared via <code class="computeroutput">!=</code>, although this
+ is not feasible to implement. The undefined <code class="computeroutput">void
+ operator!=</code> closes the loophole and ensures a
+ compile-time or link-time error.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../functionN.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function/reference.html#header.boost.function.hpp"><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="../function_equal.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/gregorian/date.html b/doc/html/boost/gregorian/date.html
new file mode 100644
index 0000000000..f60a887cec
--- /dev/null
+++ b/doc/html/boost/gregorian/date.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class date</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../date_time/doxy.html#id836108" title="Header &lt;boost/date_time/gregorian/greg_date.hpp&gt;">
+<link rel="prev" href="../../gregorian_calendar.html" title="Class gregorian_calendar">
+<link rel="next" href="../../bad_day_of_month.html" title="Struct bad_day_of_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../gregorian_calendar.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time/doxy.html#id836108"><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="../../bad_day_of_month.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.gregorian.date"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class date</span></h2>
+<p>boost::gregorian::date &#8212; A date type based on gregorian_calendar. </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"><strong>class</strong></span> date {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::year_type        year_type;       
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::month_type       month_type;      
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::day_type         day_type;        
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::day_of_year_type day_of_year_type;
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::ymd_type         ymd_type;        
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::date_rep_type    date_rep_type;   
+  <span class="bold"><strong>typedef</strong></span> gregorian_calendar::date_int_type    date_int_type;   
+  <span class="bold"><strong>typedef</strong></span> date_duration                        duration_type;   
+
+  <span class="emphasis"><em>// <a href="date.html#boost.gregorian.dateconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date.html#id965039-bb">date</a>();
+  <a href="date.html#id1108828-bb">date</a>(year_type, month_type, day_type);
+  <a href="date.html#id837863-bb">date</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;);
+  <a href="date.html#id936851-bb">date</a>(<span class="bold"><strong>const</strong></span> date_int_type &amp;);
+  <a href="date.html#id835710-bb">date</a>(date_rep_type);
+  <a href="date.html#id835729-bb">date</a>(special_values);
+
+  <span class="emphasis"><em>// <a href="date.html#id1109300-bb">public member functions</a></em></span>
+  <span class="type">date_int_type</span> <a href="date.html#id868803-bb">julian_day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_year_type</span> <a href="date.html#id868820-bb">day_of_year</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>long</strong></span></span> <a href="date.html#id798683-bb">modjulian_day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="date.html#id1036065-bb">week_number</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_int_type</span> <a href="date.html#id1031184-bb">day_number</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="date.html" title="Class date">date</a></span> <a href="date.html#id908610-bb">end_of_month</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1150185"></a><h2>Description</h2>
+<p>This class is the primary interface for programming with greogorian dates. The is a lightweight type that can be freely passed by value. All comparison operators are supported. </p>
+<div class="refsect2" lang="en">
+<a name="id1150194"></a><h3>
+<a name="boost.gregorian.dateconstruct-copy-destruct"></a><code class="computeroutput">date</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id965039-bb"></a>date();</pre></li>
+<li><pre class="literallayout"><a name="id1108828-bb"></a>date(year_type y, month_type m, day_type d);</pre></li>
+<li><pre class="literallayout"><a name="id837863-bb"></a>date(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd);</pre></li>
+<li><pre class="literallayout"><a name="id936851-bb"></a>date(<span class="bold"><strong>const</strong></span> date_int_type &amp; rhs);</pre></li>
+<li><pre class="literallayout"><a name="id835710-bb"></a>date(date_rep_type rhs);</pre></li>
+<li><pre class="literallayout"><a name="id835729-bb"></a>date(special_values sv);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1150306"></a><h3>
+<a name="id1109300-bb"></a><code class="computeroutput">date</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_int_type</span> <a name="id868803-bb"></a>julian_day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_year_type</span> <a name="id868820-bb"></a>day_of_year() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>long</strong></span></span> <a name="id798683-bb"></a>modjulian_day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id1036065-bb"></a>week_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_int_type</span> <a name="id1031184-bb"></a>day_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date.html" title="Class date">date</a></span> <a name="id908610-bb"></a>end_of_month() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../gregorian_calendar.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time/doxy.html#id836108"><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="../../bad_day_of_month.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/hash.html b/doc/html/boost/hash.html
new file mode 100644
index 0000000000..d949489993
--- /dev/null
+++ b/doc/html/boost/hash.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template hash</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="../hash/reference_.html" title=" Reference">
+<link rel="next" href="../hash_combine.html" title="Function template hash_combine">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../hash/reference_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash/reference_.html#id1082064"><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="../hash_combine.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.hash"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template hash</span></h2>
+<p>boost::hash &#8212; An STL compliant hash function object.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>struct</strong></span> hash : <span class="bold"><strong>public</strong></span> std::unary_function&lt;T, std::size_t&gt; {
+  <span class="type">std::size_t</span> <a href="hash.html#id1074553-bb"><span class="bold"><strong>operator</strong></span>()</a>(T <span class="bold"><strong>const</strong></span>&amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1219961"></a><h2>Description</h2>
+<pre class="literallayout"><span class="type">std::size_t</span> <a name="id1074553-bb"></a><span class="bold"><strong>operator</strong></span>()(T <span class="bold"><strong>const</strong></span>&amp; val) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <pre class="programlisting"><a href="../id1042434.html" title="Function hash_value">hash_value</a>(val)</pre><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+
+ The call to <code class="computeroutput"><a href="../id1042434.html" title="Function hash_value">hash_value</a></code>
+ is unqualified, so that custom overloads can be
+ found via argument dependent lookup.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if
+ <code class="computeroutput"><a href="../id1042434.html" title="Function hash_value">hash_value</a>(T)</code> throws.
+ </p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../hash/reference_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash/reference_.html#id1082064"><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="../hash_combine.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/logic/tribool.html b/doc/html/boost/logic/tribool.html
new file mode 100644
index 0000000000..5451b9c74f
--- /dev/null
+++ b/doc/html/boost/logic/tribool.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class tribool</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="../../tribool/reference.html" title="Reference">
+<link rel="next" href="../../indeterminate.html" title="Function indeterminate">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../tribool/reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../tribool/reference.html#id996838"><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="../../indeterminate.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.logic.tribool"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class tribool</span></h2>
+<p>boost::logic::tribool &#8212; A 3-state boolean type. </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"><strong>class</strong></span> tribool {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="tribool.html#boost.logic.triboolconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="tribool.html#id863678-bb">tribool</a>();
+  <a href="tribool.html#id1142681-bb">tribool</a>(<span class="bold"><strong>bool</strong></span>);
+  <a href="tribool.html#id1007549-bb">tribool</a>(indeterminate_keyword_t);
+
+  <span class="emphasis"><em>// <a href="tribool.html#id1073134-bb">public member functions</a></em></span>
+  <a href="tribool.html#id1073137-bb"><span class="bold"><strong>operator</strong></span> safe_bool</a>() <span class="bold"><strong>const</strong></span>;
+
+  enum boost::logic::tribool::value_t value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1569562"></a><h2>Description</h2>
+<p>3-state boolean values are either true, false, or indeterminate. </p>
+<div class="refsect2" lang="en">
+<a name="id1569569"></a><h3>
+<a name="boost.logic.triboolconstruct-copy-destruct"></a><code class="computeroutput">tribool</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id863678-bb"></a>tribool();</pre>
+<p>Construct a new 3-state boolean value with the value 'false'.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1142681-bb"></a>tribool(<span class="bold"><strong>bool</strong></span> value);</pre>
+<p>Construct a new 3-state boolean value with the given boolean value, which may be <code class="computeroutput">true</code> or <code class="computeroutput">false</code> .</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1007549-bb"></a>tribool(indeterminate_keyword_t );</pre>
+<p>Construct a new 3-state boolean value with an indeterminate value.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1569690"></a><h3>
+<a name="id1073134-bb"></a><code class="computeroutput">tribool</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1073137-bb"></a><span class="bold"><strong>operator</strong></span> safe_bool() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Use a 3-state boolean in a boolean context. Will evaluate true in a boolean context only when the 3-state boolean is definitely true.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ true if the 3-state boolean is true, false otherwise <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../tribool/reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../tribool/reference.html#id996838"><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="../../indeterminate.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost/variant.html b/doc/html/boost/variant.html
new file mode 100644
index 0000000000..1f178a1896
--- /dev/null
+++ b/doc/html/boost/variant.html
@@ -0,0 +1,397 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template variant</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant/reference.html#id1258086" title="Header &lt;boost/variant/variant.hpp&gt;">
+<link rel="prev" href="../id696758.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT">
+<link rel="next" href="../id928296.html" title="Function template swap">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id696758.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant/reference.html#id1258086"><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="../id928296.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.variant"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template variant</span></h2>
+<p>boost::variant &#8212; Safe, generic, stack-based discriminated union container.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2 = <span class="emphasis"><em>unspecified</em></span>, ...,
+         <span class="bold"><strong>typename</strong></span> TN = <span class="emphasis"><em>unspecified</em></span>&gt;
+<span class="bold"><strong>class</strong></span> variant {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> types;
+
+  <span class="emphasis"><em>// <a href="variant.html#boost.variantconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="variant.html#id1114004-bb">variant</a>();
+  <a href="variant.html#id1043426-bb">variant</a>(<span class="bold"><strong>const</strong></span> variant &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <a href="variant.html#id1140052-bb">variant</a>(T &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <a href="variant.html#id727749-bb">variant</a>(<span class="bold"><strong>const</strong></span> T &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN&gt;
+    <a href="variant.html#id1354083-bb">variant</a>(variant&lt;U1, U2, ..., UN&gt; &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN&gt;
+    <a href="variant.html#id1248407-bb">variant</a>(<span class="bold"><strong>const</strong></span> variant&lt;U1, U2, ..., UN&gt; &amp;);
+  <a href="variant.html#id657817-bb">~variant</a>();
+
+  <span class="emphasis"><em>// <a href="variant.html#id1251197-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="variant.html#id1047505-bb">swap</a>(variant &amp;);
+  <span class="type">variant &amp;</span> <a href="variant.html#id1326145-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> variant &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">variant &amp;</span> <a href="variant.html#id1035713-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> T &amp;);
+
+  <span class="emphasis"><em>// <a href="variant.html#id1243424-bb">queries</a></em></span>
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="variant.html#id752988-bb">which</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="variant.html#id896399-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::type_info &amp;</span> <a href="variant.html#id1246423-bb">type</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="variant.html#id1114916-bb">relational</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="variant.html#id1569910-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> variant &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="variant.html#id1316170-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> U &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="variant.html#id1206339-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> variant &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="variant.html#id1220565-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> U &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1663925"></a><h2>Description</h2>
+<p>The <code class="computeroutput">variant</code> class template (inspired by Andrei
+ Alexandrescu's class of the same name
+ [<a href="../variant/refs.html#variant.refs.ale01a">Ale01A</a>]) is an efficient,
+ <a href="../variant/tutorial.html#variant.tutorial.recursive" title="Recursive variant types">recursive-capable</a>,
+ bounded discriminated union value type capable of containing any value
+ type (either POD or non-POD). It supports construction from any type
+ convertible to one of its bounded types or from a source
+ <code class="computeroutput">variant</code> whose bounded types are each convertible to one
+ of the destination <code class="computeroutput">variant</code>'s bounded types. As well,
+ through <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code>,
+ <code class="computeroutput">variant</code> supports compile-time checked, type-safe
+ visitation; and through <code class="computeroutput"><a href="../get.html" title="Function get">get</a></code>,
+ <code class="computeroutput">variant</code> supports run-time checked, type-safe value
+ retrieval.</p>
+<p><span class="bold"><strong>Notes</strong></span>:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>The bounded types of the <code class="computeroutput">variant</code> are exposed
+ via the nested typedef <code class="computeroutput">types</code>, which is an
+ <a href="../../../libs/mpl/index.html" target="_top">MPL</a>-compatible Sequence containing the
+ set of types that must be handled by any
+ <a href="../variant/reference.html#variant.concepts.static-visitor" title="StaticVisitor">visitor</a> to
+ the <code class="computeroutput">variant</code>.</li>
+<li>All members of <code class="computeroutput">variant</code> satisfy at least the
+ basic guarantee of exception-safety. That is, all operations on
+ a <code class="computeroutput">variant</code> remain defined even after previous
+ operations have failed.</li>
+<li>Each type specified as a template argument to
+ <code class="computeroutput">variant</code> must meet the requirements of the
+ <span class="emphasis"><em><a href="../variant/reference.html#variant.concepts.bounded-type" title="BoundedType">BoundedType</a></em></span>
+ concept.</li>
+<li>Each type specified as a template argument to
+ <code class="computeroutput">variant</code> must be distinct after removal of qualifiers.
+ Thus, for instance, both <code class="computeroutput">variant&lt;int, int&gt;</code> and
+ <code class="computeroutput">variant&lt;int, const int&gt;</code> have undefined
+ behavior.</li>
+<li>Conforming implementations of <code class="computeroutput">variant</code> must
+ allow at least ten types as template arguments. The exact number
+ of allowed arguments is exposed by the preprocessor macro
+ <code class="computeroutput"><a href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a></code>.
+ (See <code class="computeroutput"><a href="../make_variant_over.html" title="Class template make_variant_over">make_variant_over</a></code> for a
+ means to specify the bounded types of a <code class="computeroutput">variant</code> by
+ the elements of an <a href="../../../libs/mpl/index.html" target="_top">MPL</a> or compatible
+ Sequence, thus overcoming this limitation.)</li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1664158"></a><h3>
+<a name="boost.variantconstruct-copy-destruct"></a><code class="computeroutput">variant</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1114004-bb"></a>variant();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The first bounded type of the <code class="computeroutput">variant</code> (i.e.,
+ <code class="computeroutput">T1</code>) must fulfill the requirements of the
+ <span class="emphasis"><em>DefaultConstructible</em></span> [20.1.4]
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Content of <code class="computeroutput">*this</code> is the default value of the
+ first bounded type (i.e, <code class="computeroutput">T1</code>).<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the default
+ constructor of <code class="computeroutput">T1</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1043426-bb"></a>variant(<span class="bold"><strong>const</strong></span> variant &amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Content of <code class="computeroutput">*this</code> is a copy of the content of
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the
+ copy constructor of <code class="computeroutput">other</code>'s contained type.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <a name="id1140052-bb"></a>variant(T &amp; operand);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">T</code> must be unambiguously convertible to one of
+ the bounded types (i.e., <code class="computeroutput">T1</code>, <code class="computeroutput">T2</code>,
+ etc.).<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Content of <code class="computeroutput">*this</code> is the best conversion of
+ <code class="computeroutput">operand</code> to one of the bounded types, as determined
+ by standard overload resolution rules.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the conversion of
+ <code class="computeroutput">operand</code> to one of the bounded types.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <a name="id727749-bb"></a>variant(<span class="bold"><strong>const</strong></span> T &amp; operand);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Same semantics as previous constructor, but allows
+ construction from temporaries.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN&gt;
+  <a name="id1354083-bb"></a>variant(variant&lt;U1, U2, ..., UN&gt; &amp; operand);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <span class="emphasis"><em>Every</em></span> one of <code class="computeroutput">U1</code>,
+ <code class="computeroutput">U2</code>, ..., <code class="computeroutput">UN</code> must have an unambiguous
+ conversion to one of the bounded types (i.e., <code class="computeroutput">T1</code>,
+ <code class="computeroutput">T2</code>, ..., <code class="computeroutput">TN</code>).<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ If <code class="computeroutput">variant&lt;U1, U2, ..., UN&gt;</code> is itself
+ one of the bounded types, then content of <code class="computeroutput">*this</code> is a
+ copy of <code class="computeroutput">operand</code>. Otherwise, content of
+ <code class="computeroutput">*this</code> is the best conversion of the content of
+ <code class="computeroutput">operand</code> to one of the bounded types, as determined
+ by standard overload resolution rules.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If <code class="computeroutput">variant&lt;U1, U2, ..., UN&gt;</code> is itself
+ one of the bounded types, then may fail with any exceptions arising
+ from the copy constructor of
+ <code class="computeroutput">variant&lt;U1, U2, ..., UN&gt;</code>. Otherwise, may fail
+ with any exceptions arising from the conversion of the content of
+ <code class="computeroutput">operand</code> to one of the bounded types.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN&gt;
+  <a name="id1248407-bb"></a>variant(<span class="bold"><strong>const</strong></span> variant&lt;U1, U2, ..., UN&gt; &amp; operand);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Same semantics as previous constructor, but allows
+ construction from temporaries.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id657817-bb"></a>~variant();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys the content of <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1664686"></a><h3>
+<a name="id1251197-bb"></a><code class="computeroutput">variant</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1047505-bb"></a>swap(variant &amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ Every bounded type must fulfill the requirements of the
+ <a href="../Assignable.html" title="Concept Assignable">Assignable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Interchanges the content of <code class="computeroutput">*this</code> and
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If the contained type of <code class="computeroutput">other</code> is the same as
+ the contained type of <code class="computeroutput">*this</code>, then may fail with any
+ exceptions arising from the <code class="computeroutput">swap</code> of the contents of
+ <code class="computeroutput">*this</code> and <code class="computeroutput">other</code>. Otherwise, may fail
+ with any exceptions arising from either of the copy constructors
+ of the contained types. Also, in the event of insufficient
+ memory, may fail with <code class="computeroutput">std::bad_alloc</code>
+ (<a href="../variant/design.html#variant.design.never-empty.problem" title="The Implementation Problem">why?</a>).</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">variant &amp;</span> <a name="id1326145-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> variant &amp; rhs);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ Every bounded type must fulfill the requirements of the
+ <a href="../Assignable.html" title="Concept Assignable">Assignable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If the contained type of <code class="computeroutput">rhs</code> is the same as
+ the contained type of <code class="computeroutput">*this</code>, then assigns the
+ content of <code class="computeroutput">rhs</code> into the content of
+ <code class="computeroutput">*this</code>. Otherwise, makes the content of
+ <code class="computeroutput">*this</code> a copy of the content of <code class="computeroutput">rhs</code>,
+ destroying the previous content of <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If the contained type of <code class="computeroutput">rhs</code> is the same as
+ the contained type of <code class="computeroutput">*this</code>, then may fail with any
+ exceptions arising from the assignment of the content of
+ <code class="computeroutput">rhs</code> into the content <code class="computeroutput">*this</code>. Otherwise,
+ may fail with any exceptions arising from the copy constructor
+ of the contained type of <code class="computeroutput">rhs</code>. Also, in the event of
+ insufficient memory, may fail with <code class="computeroutput">std::bad_alloc</code>
+ (<a href="../variant/design.html#variant.design.never-empty.problem" title="The Implementation Problem">why?</a>).</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">variant &amp;</span> <a name="id1035713-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> T &amp; rhs);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">T</code> must be unambiguously convertible to
+ one of the bounded types (i.e., <code class="computeroutput">T1</code>,
+ <code class="computeroutput">T2</code>, etc.).</li>
+<li>Every bounded type must fulfill the requirements of the
+ <a href="../Assignable.html" title="Concept Assignable">Assignable</a>
+ concept.</li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If the contained type of <code class="computeroutput">*this</code> is
+ <code class="computeroutput">T</code>, then assigns <code class="computeroutput">rhs</code> into the content
+ of <code class="computeroutput">*this</code>. Otherwise, makes the content of
+ <code class="computeroutput">*this</code> the best conversion of <code class="computeroutput">rhs</code> to
+ one of the bounded types, as determined by standard overload
+ resolution rules, destroying the previous content of
+ <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If the contained type of <code class="computeroutput">*this</code> is
+ <code class="computeroutput">T</code>, then may fail with any exceptions arising from
+ the assignment of <code class="computeroutput">rhs</code> into the content
+ <code class="computeroutput">*this</code>. Otherwise, may fail with any exceptions
+ arising from the conversion of <code class="computeroutput">rhs</code> to one of the
+ bounded types. Also, in the event of insufficient memory, may
+ fail with <code class="computeroutput">std::bad_alloc</code>
+ (<a href="../variant/design.html#variant.design.never-empty.problem" title="The Implementation Problem">why?</a>).</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1665158"></a><h3>
+<a name="id1243424-bb"></a><code class="computeroutput">variant</code> queries</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id752988-bb"></a>which() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The zero-based index into the set of bounded types
+ of the contained type of <code class="computeroutput">*this</code>. (For instance, if
+ called on a <code class="computeroutput">variant&lt;int, std::string&gt;</code> object
+ containing a <code class="computeroutput">std::string</code>, <code class="computeroutput">which()</code>
+ would return <code class="computeroutput">1</code>.)<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896399-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code>: <code class="computeroutput">variant</code> always contains
+ exactly one of its bounded types. (See
+ <a href="../variant/design.html#variant.design.never-empty" title='"Never-Empty" Guarantee'>the section called &#8220;"Never-Empty" Guarantee&#8221;</a>
+ for more information.)<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Facilitates generic compatibility with
+ <a href="any.html" title="Class any">boost::any</a>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::type_info &amp;</span> <a name="id1246423-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">typeid(x)</code>, where <code class="computeroutput">x</code> is the the
+ content of <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1665383"></a><h3>
+<a name="id1114916-bb"></a><code class="computeroutput">variant</code> relational</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id1280996-bb"></a></p>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1569910-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> variant &amp; rhs) <span class="bold"><strong>const</strong></span>;
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1316170-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> U &amp; ) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The overload returning <code class="computeroutput">void</code> exists only to
+ prohibit implicit conversion of the operator's right-hand side
+ to <code class="computeroutput">variant</code>; thus, its use will (purposefully)
+ result in a compile-time error.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ Every bounded type of the <code class="computeroutput">variant</code> must
+ fulfill the requirements of the
+ <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> iff <code class="computeroutput">which() == rhs.which()</code><span class="emphasis"><em>and</em></span><code class="computeroutput">content_this == content_rhs</code>, where
+ <code class="computeroutput">content_this</code> is the content of <code class="computeroutput">*this</code>
+ and <code class="computeroutput">content_rhs</code> is the content of
+ <code class="computeroutput">rhs</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If <code class="computeroutput">which() == rhs.which()</code> then may fail with
+ any exceptions arising from <code class="computeroutput">operator==(T,T)</code>, where
+ <code class="computeroutput">T</code> is the contained type of
+ <code class="computeroutput">*this</code>.</p>
+</li>
+<li>
+<p><a name="id1138292-bb"></a></p>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1206339-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> variant &amp; rhs) <span class="bold"><strong>const</strong></span>;
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1220565-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> U &amp; ) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The overload returning <code class="computeroutput">void</code> exists only to
+ prohibit implicit conversion of the operator's right-hand side
+ to <code class="computeroutput">variant</code>; thus, its use will (purposefully)
+ result in a compile-time error.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ Every bounded type of the <code class="computeroutput">variant</code> must
+ fulfill the requirements of the
+ <a href="../LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If <code class="computeroutput">which() == rhs.which()</code> then:
+ <code class="computeroutput">content_this &lt; content_rhs</code>, where
+ <code class="computeroutput">content_this</code> is the content of <code class="computeroutput">*this</code>
+ and <code class="computeroutput">content_rhs</code> is the content of <code class="computeroutput">rhs</code>.
+ Otherwise: <code class="computeroutput">which() &lt; rhs.which()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If <code class="computeroutput">which() == rhs.which()</code> then may fail with
+ any exceptions arising from <code class="computeroutput">operator&lt;(T,T)</code>,
+ where <code class="computeroutput">T</code> is the contained type of
+ <code class="computeroutput">*this</code>.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id696758.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant/reference.html#id1258086"><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="../id928296.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_staticassert.html b/doc/html/boost_staticassert.html
index 794c372ecc..f8e3f5d2f4 100644
--- a/doc/html/boost_staticassert.html
+++ b/doc/html/boost_staticassert.html
@@ -1,11 +1,226 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_staticassert.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_staticassert.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_staticassert.html</a>
- </body>
-</html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 10. Boost.StaticAssert</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="signals/tests.html" title="Testsuite">
+<link rel="next" href="boost_staticassert/how.html" title=" How it works">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signals/tests.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="boost_staticassert/how.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="boost_staticassert"></a>Chapter 10. Boost.StaticAssert</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">John</span> <span class="surname">Maddock</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Steve</span> <span class="surname">Cleary</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2000, 2005 Steve Cleary and John Maddock</p></div>
+<div><div class="legalnotice">
+<a name="id1288724"></a><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" target="_top">
+ http://www.boost.org/LICENSE_1_0.txt
+ </a>)
+
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.intro"> Overview and Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.namespace"> Use at namespace scope.</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.function"> Use at function scope</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.class"> Use at class scope</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.templates"> Use in templates</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_staticassert/how.html"> How it works</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert/test.html"> Test Programs</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_staticassert.intro"></a> Overview and Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.namespace"> Use at namespace scope.</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.function"> Use at function scope</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.class"> Use at class scope</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.templates"> Use in templates</a></span></dt>
+</dl></div>
+<p>
+The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">static_assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> supplies a single macro <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>,
+which generates a compile time error message if the integral-constant-expression <code class="computeroutput"><span class="identifier">x</span></code>
+is not true. In other words it is the compile time equivalent of the assert macro;
+this is sometimes known as a "compile-time-assertion", but will be called a
+"static assertion" throughout these docs. Note that if the condition is <code class="computeroutput"><span class="keyword">true</span></code>,
+then the macro will generate neither code nor data - and the macro can also
+be used at either namespace, class or function scope. When used in a template,
+the static assertion will be evaluated at the time the template is instantiated;
+this is particularly useful for validating template parameters.</p>
+<p>
+One of the aims of <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> is to generate readable error messages.
+These immediately tell the user that a library is being used in a manner that
+is not supported. While error messages obviously differ from compiler to compiler,
+but you should see something like:</p>
+<pre class="programlisting"><code class="literal"><span class="identifier">Illegal</span><span class="identifier"> use</span><span class="identifier"> of</span><span class="identifier"> STATIC_ASSERTION_FAILURE</span><span class="special">&lt;</span><span class="keyword">false</span><span class="special">&gt;</span></code></pre>
+<p>
+Which is intended to at least catch the eye!</p>
+<p>
+You can use <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> at any place where you can place a declaration,
+that is at class, function or namespace scope, this is illustrated by the
+following examples:</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_staticassert.namespace"></a> Use at namespace scope.</h4></div></div></div>
+<p>
+The macro can be used at namespace scope, if there is some requirement must
+always be true; generally this means some platform specific requirement.
+Suppose we require that <code class="computeroutput"><span class="keyword">int</span></code> be at least a 32-bit integral type, and that <code class="computeroutput"><span class="keyword">wchar_t</span></code>
+be an unsigned type. We can verify this at compile time as follows:</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="special"> &lt;</span><span class="identifier">climits</span><span class="special">&gt;</span><span class="preprocessor">
+#include</span><span class="special"> &lt;</span><span class="identifier">cwchar</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">static_assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><span class="keyword">
+
+namespace</span><span class="identifier"> my_conditions</span><span class="special"> {</span><span class="identifier">
+
+ BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="special"> *</span><span class="identifier"> CHAR_BIT</span><span class="special"> &gt;=</span><span class="number"> 32</span><span class="special">);</span><span class="identifier">
+ BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="identifier">WCHAR_MIN</span><span class="special"> &gt;=</span><span class="number"> 0</span><span class="special">);</span><span class="special">
+}</span><span class="comment"> // namespace my_conditions
+</span></code></pre>
+<p>
+The use of the namespace my_conditions here requires some comment.
+The macro <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> works by generating an typedef declaration,
+and since the typedef must have a name, the macro generates one automatically by
+mangling a stub name with the value of <span class="underline">_LINE</span>_. When <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> is
+used at either class or function scope then each use of <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code>
+is guaranteed to produce a name unique to that scope (provided you only use
+the macro once on each line). However when used in a header at namespace
+scope, that namespace can be continued over multiple headers, each of which
+may have their own static assertions, and on the "same" lines, thereby generating
+duplicate declarations. In theory the compiler should silently ignore duplicate
+typedef declarations, however many do not do so (and even if they do they are
+entitled to emit warnings in such cases). To avoid potential problems, if you
+use <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> in a header and at namespace scope, then enclose
+them in a namespace unique to that header.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_staticassert.function"></a> Use at function scope</h4></div></div></div>
+<p>
+The macro is typically used at function scope inside template functions,
+when the template arguments need checking. Imagine that we have an
+iterator-based algorithm that requires random access iterators.
+If the algorithm is instantiated with iterators that do not meet our
+requirements then an error will be generated eventually, but this may
+be nested deep inside several templates, making it hard for the user to
+determine what went wrong. One option is to add a static assertion at
+the top level of the template, in that case if the condition is not met,
+then an error will be generated in a way that makes it reasonably obvious to
+the user that the template is being misused.</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="special"> &lt;</span><span class="identifier">iterator</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">static_assert</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">hpp</span><span class="special">&gt;</span><span class="keyword">
+
+template</span><span class="special"> &lt;</span><span class="keyword">class</span><span class="identifier"> RandomAccessIterator</span><span class="special"> &gt;</span><span class="identifier">
+RandomAccessIterator</span><span class="identifier"> foo</span><span class="special">(</span><span class="identifier">RandomAccessIterator</span><span class="identifier"> from</span><span class="special">,</span><span class="identifier"> RandomAccessIterator</span><span class="identifier"> to</span><span class="special">)</span><span class="special">
+{</span><span class="comment">
+ // this template can only be used with
+ // random access iterators...
+</span><span class="keyword"> typedef</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"> RandomAccessIterator</span><span class="special"> &gt;::</span><span class="identifier">iterator_category</span><span class="identifier"> cat</span><span class="special">;</span><span class="identifier">
+ BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">cat</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">random_access_iterator_tag</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span><span class="special">));</span><span class="comment">
+ //
+ // detail goes here...
+</span><span class="keyword"> return</span><span class="identifier"> from</span><span class="special">;</span><span class="special">
+}</span></code></pre>
+<p>
+A couple of footnotes are in order here: the extra set of parenthesis around the
+assert, is to prevent the comma inside the <code class="computeroutput"><span class="identifier">is_convertible</span></code> template being
+interpreted by the preprocessor as a macro argument separator; the target type
+for <code class="computeroutput"><span class="identifier">is_convertible</span></code> is a reference type, as some compilers have problems
+using <code class="computeroutput"><span class="identifier">is_convertible</span></code> when the conversion is via a user defined constructor
+(in any case there is no guarantee that the iterator tag classes are
+copy-constructible).</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_staticassert.class"></a> Use at class scope</h4></div></div></div>
+<p>
+The macro is typically used inside classes that are templates.
+Suppose we have a template-class that requires an unsigned integral type with
+at least 16-bits of precision as a template argument, we can achieve this
+using something like this:</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="special"> &lt;</span><span class="identifier">climits</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">static_assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><span class="keyword">
+
+template</span><span class="special"> &lt;</span><span class="keyword">class</span><span class="identifier"> UnsignedInt</span><span class="special">&gt;</span><span class="keyword">
+class</span><span class="identifier"> myclass</span><span class="special">
+{</span><span class="keyword">
+private</span><span class="special">:</span><span class="identifier">
+ BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">UnsignedInt</span><span class="special">)</span><span class="special"> *</span><span class="identifier"> CHAR_BIT</span><span class="special"> &gt;=</span><span class="number"> 16</span><span class="special">);</span><span class="identifier">
+ BOOST_STATIC_ASSERT</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">UnsignedInt</span><span class="special">&gt;::</span><span class="identifier">is_specialized</span><span class="special">
+ &amp;&amp;</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">UnsignedInt</span><span class="special">&gt;::</span><span class="identifier">is_integer</span><span class="special">
+ &amp;&amp;</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">UnsignedInt</span><span class="special">&gt;::</span><span class="identifier">is_signed</span><span class="special">);</span><span class="keyword">
+public</span><span class="special">:</span><span class="comment">
+ /* details here */</span><span class="special">
+};</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_staticassert.templates"></a> Use in templates</h4></div></div></div>
+<p>
+Normally static assertions when used inside a class or function template,
+will not be instantiated until the template in which it is used is instantiated.
+However, there is one potential problem to watch out for: if the static assertion
+is not dependent upon one or more template parameters, then the compiler is
+permitted to evaluate the static assertion at the point it is first seen,
+irrespective of whether the template is ever instantiated, for example:</p>
+<pre class="programlisting"><code class="literal"><span 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"> must_not_be_instantiated</span><span class="special">
+{</span><span class="identifier">
+ BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="keyword">false</span><span class="special">);</span><span class="special">
+};</span></code></pre>
+<p>
+Will produce a compiler error with some compilers (for example Intel 8.1
+or gcc 3.4), regardless of whether the template is ever instantiated. A
+workaround in cases like this is to force the assertion to be dependent
+upon a template parameter:</p>
+<pre class="programlisting"><code class="literal"><span 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"> must_not_be_instantiated</span><span class="special">
+{</span><span class="comment">
+ // this will be triggered if this type is instantiated
+</span><span class="identifier"> BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span><span class="special"> ==</span><span class="number"> 0</span><span class="special">);</span><span class="special">
+};</span></code></pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: April 17, 2005 at 10:45:13 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signals/tests.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="boost_staticassert/how.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_staticassert/how.html b/doc/html/boost_staticassert/how.html
new file mode 100644
index 0000000000..d36cd9fd55
--- /dev/null
+++ b/doc/html/boost_staticassert/how.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> How it works</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">
+<link rel="prev" href="../boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">
+<link rel="next" href="test.html" title=" Test Programs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost_staticassert.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_staticassert.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="test.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_staticassert.how"></a> How it works</h3></div></div></div>
+<p><code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> works as follows. There is class <code class="computeroutput"><span class="identifier">STATIC_ASSERTION_FAILURE</span></code>
+ which is defined as:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">namespace</span><span class="identifier"> boost</span><span class="special">{</span><span class="keyword">
+
+template</span><span class="special"> &lt;</span><span class="keyword">bool</span><span class="special">&gt;</span><span class="keyword"> struct</span><span class="identifier"> STATIC_ASSERTION_FAILURE</span><span class="special">;</span><span class="keyword">
+
+template</span><span class="special"> &lt;&gt;</span><span class="keyword"> struct</span><span class="identifier"> STATIC_ASSERTION_FAILURE</span><span class="special">&lt;</span><span class="keyword">true</span><span class="special">&gt;{};</span><span class="special">
+
+}</span></code></pre>
+<p>
+The key feature is that the error message triggered by the undefined
+expression <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">STATIC_ASSERTION_FAILURE</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;)</span></code>, tends to be consistent
+across a wide variety of compilers. The rest of the machinery of
+<code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code> is just a way to feed the <code class="computeroutput"><span class="keyword">sizeof</span></code> expression into a <code class="computeroutput"><span class="keyword">typedef</span></code>.
+The use of a macro here is somewhat ugly; however boost members have spent
+considerable effort trying to invent a static assert that avoided macros,
+all to no avail. The general conclusion was that the good of a static assert
+working at namespace, function, and class scope outweighed the ugliness of a macro.</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 © 2000, 2005 Steve Cleary and John Maddock</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost_staticassert.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_staticassert.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="test.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_staticassert/test.html b/doc/html/boost_staticassert/test.html
new file mode 100644
index 0000000000..2f030087d8
--- /dev/null
+++ b/doc/html/boost_staticassert/test.html
@@ -0,0 +1,122 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Test Programs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">
+<link rel="prev" href="how.html" title=" How it works">
+<link rel="next" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="how.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_staticassert.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="../string_algo.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_staticassert.test"></a> Test Programs</h3></div></div></div>
+<div class="informaltable">
+<h4>
+<a name="id1290208"></a><span class="table-title">Test programs provided with static_assert</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Test Program</th>
+<th>Expected to Compile</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test.cpp" target="_top">static_assert_test.cpp</a></td>
+<td>Yes</td>
+<td>Illustrates usage, and should always compile, really just tests compiler compatibility.</td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_example_1.cpp" target="_top">static_assert_example_1.cpp</a></td>
+<td>Platform dependent.</td>
+<td>Namespace scope test program, may compile depending upon the platform. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_example_2.cpp" target="_top">static_assert_example_2.cpp</a></td>
+<td>Yes</td>
+<td>Function scope test program. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_example_3.cpp" target="_top">static_assert_example_3.cpp</a></td>
+<td>Yes</td>
+<td>Class scope test program. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_1.cpp" target="_top">static_assert_test_fail_1.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at namespace scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_2.cpp" target="_top">static_assert_test_fail_2.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at non-template function scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_3.cpp" target="_top">static_assert_test_fail_3.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at non-template class scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_4.cpp" target="_top">static_assert_test_fail_4.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at non-template class scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_5.cpp" target="_top">static_assert_test_fail_5.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at template class scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_6.cpp" target="_top">static_assert_test_fail_6.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure at template class member function scope. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_7.cpp" target="_top">static_assert_test_fail_7.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure of class scope example. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_8.cpp" target="_top">static_assert_test_fail_8.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure of function scope example. </td>
+</tr>
+<tr>
+<td><a href="../../../libs/static_assert/static_assert_test_fail_9.cpp" target="_top">static_assert_test_fail_9.cpp</a></td>
+<td>No</td>
+<td>Illustrates failure of function scope example (part 2). </td>
+</tr>
+</tbody>
+</table>
+</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, 2005 Steve Cleary and John Maddock</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="how.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_staticassert.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="../string_algo.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits.html b/doc/html/boost_typetraits.html
index 81ce9c2b3a..05aafa659d 100644
--- a/doc/html/boost_typetraits.html
+++ b/doc/html/boost_typetraits.html
@@ -1,11 +1,158 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <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
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 14. Boost.TypeTraits</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="tribool/tests.html" title="Testsuite">
+<link rel="next" href="boost_typetraits/background.html" title=" Background and Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tribool/tests.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="boost_typetraits/background.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="boost_typetraits"></a>Chapter 14. Boost.TypeTraits</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">various</span> <span class="surname">authors</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2000, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</p></div>
+<div><div class="legalnotice">
+<a name="id1572446"></a><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" target="_top">
+ http://www.boost.org/LICENSE_1_0.txt
+ </a>)
+
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="boost_typetraits.html#boost_typetraits.intro"> Introduction</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/background.html"> Background and Tutorial</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category.html"> Type Traits by Category</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_typetraits/category.html#boost_typetraits.value_traits"> Type Traits that Describe the Properties of a Type</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category.html#boost_typetraits.transform"> Type Traits that Transform One Type to Another</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category.html#boost_typetraits.alignment"> Synthesizing Types with Specific Alignments</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category.html#boost_typetraits.function"> Decomposing Function Types</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_typetraits/user_defined.html"> User Defined Specializations</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/intrinsics.html"> Support for Compiler Intrinsics</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/mpl.html"> MPL Interoperability</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples.html"> Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_typetraits/examples.html#boost_typetraits.copy"> An Optimized Version of std::copy</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples.html#boost_typetraits.fill"> An Optimised Version of std::fill</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples.html#boost_typetraits.destruct"> An Example that Omits Destructor Calls For Types with Trivial Destructors</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples.html#boost_typetraits.iter"> An improved Version of std::iter_swap</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_typetraits/reference.html"> Alphabetical Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.add_const"> add_const</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.add_cv"> add_cv</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.add_pointer"> add_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.add_reference"> add_reference</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.add_volatile"> add_volatile</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.aligned_storage"> aligned_storage</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.alignment_of"> alignment_of</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.extent"> extent</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.function_traits"> function_traits</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_nothrow_assign"> has_nothrow_assign</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_nothrow_constructor"> has_nothrow_constructor</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_nothrow_copy"> has_nothrow_copy</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_trivial_assign"> has_trivial_assign</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_trivial_constructor"> has_trivial_constructor</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_trivial_copy"> has_trivial_copy</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_trivial_destructor"> has_trivial_destructor</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.has_virtual_destructor"> has_virtual_destructor</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.integral_constant"> integral_constant</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_abstract"> is_abstract</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_arithmetic"> is_arithmetic</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_array"> is_array</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_base_of"> is_base_of</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_class"> is_class</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_compound"> is_compound</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_const"> is_const</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_convertible"> is_convertible</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_empty"> is_empty</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_enum"> is_enum</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_floating_point"> is_floating_point</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_function"> is_function</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_fundamental"> is_fundamental</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_integral"> is_integral</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_member_function_pointer"> is_member_function_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_member_object_pointer"> is_member_object_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_member_pointer"> is_member_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_object"> is_object</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_pod"> is_pod</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_pointer"> is_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_polymorphic"> is_polymorphic</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_same"> is_same</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_scalar"> is_scalar</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_stateless"> is_stateless</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_reference"> is_reference</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_union"> is_union</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_void"> is_void</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.is_volatile"> is_volatile</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.rank"> rank</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_all_extents"> remove_all_extents</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_const"> remove_const</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_cv"> remove_cv</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_extent"> remove_extent</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_pointer"> remove_pointer</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_reference"> remove_reference</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.remove_volatile"> remove_volatile</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html#boost_typetraits.type_with_alignment"> type_with_alignment</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_typetraits/credits.html"> Credits</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.intro"></a> Introduction</h3></div></div></div>
+<p>
+The Boost type-traits library contains 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?</p>
+<p>
+The type-traits classes share a unified design: each class inherits from a
+the type <a href="boost_typetraits/reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a> if the type has the specified property and inherits from
+<a href="boost_typetraits/reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a> otherwise.</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.</p>
+</div>
+</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 11, 2005 at 14:32:21 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tribool/tests.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="boost_typetraits/background.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
-
diff --git a/doc/html/boost_typetraits/background.html b/doc/html/boost_typetraits/background.html
index 291d131034..23f36b9535 100644
--- a/doc/html/boost_typetraits/background.html
+++ b/doc/html/boost_typetraits/background.html
@@ -1,12 +1,462 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits/background.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits/background.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits/background.html</a>
- </body>
-</html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Background and Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="next" href="category.html" title=" Type Traits by Category">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost_typetraits.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="category.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_typetraits.background"></a> Background and Tutorial</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 <a href="http://www.ddj.com" target="_top">Dr Dobb's Journal</a>.</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="background.type_traits"></a><h4>
+<a name="id1572630"></a>Type Traits</h4>
+<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><a href="background.html#background.references">[1]</a>. In the Boost type-traits library, we<a href="background.html#background.references">[2]</a> 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 <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a> if the type has the specified property and inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a> 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="background.implementation"></a><h4>
+<a name="id1572720"></a>Implementation</h4>
+<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"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></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"><code class="literal"><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> <a href="reference.html#boost_typetraits.is_void" title=" is_void">is_void</a><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a><span class="special">{};</span><span class="keyword">
+
+template</span><span class="special"> &lt;&gt;</span><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_void" title=" is_void">is_void</a><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">{};</span></code></pre>
+<p>
+Here we define a primary version of the template class <code class="computeroutput"><a href="reference.html#boost_typetraits.is_void" title=" is_void">is_void</a></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"><code class="literal"><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> <a href="reference.html#boost_typetraits.is_pointer" title=" is_pointer">is_pointer</a><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a><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> <a href="reference.html#boost_typetraits.is_pointer" title=" is_pointer">is_pointer</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">*&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">{};</span></code></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"><code class="literal"><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></code></pre>
+<p>
+Then you can also write a partial specialization of the form:</p>
+<pre class="programlisting"><code class="literal"><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></code></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"><code class="literal"><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> <a href="reference.html#boost_typetraits.remove_extent" title=" remove_extent">remove_extent</a><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> <a href="reference.html#boost_typetraits.remove_extent" title=" remove_extent">remove_extent</a><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></code></pre>
+<p>
+The aim of <code class="computeroutput"><a href="reference.html#boost_typetraits.remove_extent" title=" remove_extent">remove_extent</a></code> is this: imagine a generic algorithm that is
+passed an array type as a template parameter, <code class="computeroutput"><a href="reference.html#boost_typetraits.remove_extent" title=" remove_extent">remove_extent</a></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="background.optimized_copy"></a><h4>
+<a name="id1591060"></a>Optimized copy</h4>
+<p>
+As an example of how the type traits classes can be used, consider the
+standard library algorithm copy:</p>
+<pre class="programlisting"><code class="literal"><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></code></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<a href="background.html#background.references">[3]</a> 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"><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a></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 <a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a> 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 <a href="examples.html#boost_typetraits.copy" title=" An Optimized Version of std::copy">the examples</a>. 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"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code> or a <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code>. Following that
+there is an overload of do_copy that uses <code class="computeroutput"><span class="identifier">memcpy</span></code>: this time the iterators are required
+to actually be pointers to the same type, and the final parameter must be a
+<code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>. Finally, the version of <code class="computeroutput"><span class="identifier">copy</span></code> calls <code class="computeroutput"><span class="identifier">do_copy</span></code>, passing
+<code class="computeroutput"><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;()</span></code> 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="background.was_it_worth_it_"></a><h4>
+<a name="id1591483"></a>Was it worth it?</h4>
+<p>
+It has often been repeated in these columns that "premature optimization is the
+root of all evil" <a href="background.html#background.references">[4]</a>. 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<a href="background.html#background.references">[5]</a> 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="informaltable">
+<h4>
+<a name="id1591527"></a><span class="table-title">Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times in micro-seconds)</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Version</th>
+<th>T</th>
+<th>Time</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>"Optimized" copy</td>
+<td>char</td>
+<td>0.99</td>
+</tr>
+<tr>
+<td>Conventional copy</td>
+<td>char</td>
+<td>8.07</td>
+</tr>
+<tr>
+<td>"Optimized" copy</td>
+<td>int</td>
+<td>2.52</td>
+</tr>
+<tr>
+<td>Conventional copy</td>
+<td>int</td>
+<td>8.02</td>
+</tr>
+</tbody>
+</table>
+</div>
+<a name="background.pair_of_references"></a><h4>
+<a name="id1591589"></a>Pair of References</h4>
+<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 <a href="background.html#background.references">[6]</a>.</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"><code class="literal"><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></code></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 <a href="background.html#background.references">[7]</a>. 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="informaltable">
+<h4>
+<a name="id1591872"></a><span class="table-title">Required Constructor Argument Types</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type of <code class="computeroutput"><span class="identifier">T1</span></code>
+</th>
+<th>Type of parameter to initializing constructor</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>T</td>
+<td>const T &amp;</td>
+</tr>
+<tr>
+<td>T &amp;</td>
+<td>T &amp;</td>
+</tr>
+<tr>
+<td>const T &amp;</td>
+<td>const T &amp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<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 <a href="reference.html#boost_typetraits.add_reference" title=" add_reference">add_reference</a>, which adds a reference to its type,
+unless it is already a reference.</p>
+<div class="informaltable">
+<h4>
+<a name="id1591937"></a><span class="table-title">Using add_reference to synthesize the correct constructor type</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type of <code class="computeroutput"><span class="identifier">T1</span></code>
+</th>
+<th>Type of <code class="computeroutput"><span class="keyword">const</span><span class="identifier"> T1</span></code>
+</th>
+<th>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>
+</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>T</td>
+<td>const T</td>
+<td>const T &amp;</td>
+</tr>
+<tr>
+<td>T &amp;</td>
+<td>T &amp; [8]</td>
+<td>T &amp;</td>
+</tr>
+<tr>
+<td>const T &amp;</td>
+<td>const T &amp;</td>
+<td>const T &amp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<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"><code class="literal"><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><a href="reference.html#boost_typetraits.add_reference" title=" add_reference">add_reference</a><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><a href="reference.html#boost_typetraits.add_reference" title=" add_reference">add_reference</a><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></code></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="background.conclusion"></a><h4>
+<a name="id1592375"></a>Conclusion</h4>
+<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="background.acknowledgements"></a><h4>
+<a name="id1592387"></a>Acknowledgements</h4>
+<p>
+The authors would like to thank Beman Dawes and Howard Hinnant for their
+helpful comments when preparing this article.</p>
+<a name="background.references"></a><h4>
+<a name="id1592402"></a>References</h4>
+<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, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost_typetraits.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="category.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/category.html b/doc/html/boost_typetraits/category.html
new file mode 100644
index 0000000000..03fe0f6a06
--- /dev/null
+++ b/doc/html/boost_typetraits/category.html
@@ -0,0 +1,327 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Type Traits by Category</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="background.html" title=" Background and Tutorial">
+<link rel="next" href="user_defined.html" title=" User Defined Specializations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="background.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="user_defined.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_typetraits.category"></a> Type Traits by Category</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="category.html#boost_typetraits.value_traits"> Type Traits that Describe the Properties of a Type</a></span></dt>
+<dt><span class="section"><a href="category.html#boost_typetraits.transform"> Type Traits that Transform One Type to Another</a></span></dt>
+<dt><span class="section"><a href="category.html#boost_typetraits.alignment"> Synthesizing Types with Specific Alignments</a></span></dt>
+<dt><span class="section"><a href="category.html#boost_typetraits.function"> Decomposing Function Types</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.value_traits"></a> Type Traits that Describe the Properties of a Type</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="category.html#boost_typetraits.primary"> Categorizing a Type</a></span></dt>
+<dt><span class="section"><a href="category.html#boost_typetraits.properties"> General Type Properties</a></span></dt>
+<dt><span class="section"><a href="category.html#boost_typetraits.relate"> Relationships Between Two Types</a></span></dt>
+</dl></div>
+<p>
+These traits are all <span class="emphasis"><em>value traits</em></span>, which is to say the traits classes all
+inherit from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a>, and are used to access some numerical
+property of a type. Often this is a simple true or false Boolean value,
+but in a few cases may be some other integer value (for example when dealing
+with type alignments, or array bounds: see <code class="computeroutput"><a href="reference.html#boost_typetraits.alignment_of" title=" alignment_of">alignment_of</a></code>, <code class="computeroutput"><a href="reference.html#boost_typetraits.rank" title=" rank">rank</a></code> and <code class="computeroutput"><a href="reference.html#boost_typetraits.extent" title=" extent">extent</a></code>).</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_typetraits.primary"></a> Categorizing a Type</h5></div></div></div>
+<p>
+These traits identify what "kind" of type some type <code class="computeroutput"><span class="identifier">T</span></code> is. These are split into
+two groups: primary traits which are all mutually exclusive, and composite traits
+that are compositions of one or more primary traits.</p>
+<p>
+For any given type, exactly one primary type trait will inherit from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, and all the others will inherit from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>, in other
+words these traits are mutually exclusive.</p>
+<p>
+This means that <code class="computeroutput"><a href="reference.html#boost_typetraits.is_integral" title=" is_integral">is_integral</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code> and <code class="computeroutput"><a href="reference.html#boost_typetraits.is_floating_point" title=" is_floating_point">is_floating_point</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+will only ever be true for built-in types; if you want to check for a
+user-defined class type that behaves "as if" it is an integral or floating point type,
+then use the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="keyword"> template</span></code> instead.</p>
+<p><span class="bold"><strong>Synopsis:</strong></span></p>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.is_array" title=" is_array">is_array</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_class" title=" is_class">is_class</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_enum" title=" is_enum">is_enum</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_floating_point" title=" is_floating_point">is_floating_point</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_function" title=" is_function">is_function</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_integral" title=" is_integral">is_integral</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_member_function_pointer" title=" is_member_function_pointer">is_member_function_pointer</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_member_object_pointer" title=" is_member_object_pointer">is_member_object_pointer</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_pointer" title=" is_pointer">is_pointer</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_reference" title=" is_reference">is_reference</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_union" title=" is_union">is_union</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_void" title=" is_void">is_void</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span></code></pre>
+<p>
+The following traits are made up of the union of one or more type
+categorizations. A type may belong to more than one of these categories,
+in addition to one of the primary categories.</p>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.is_arithmetic" title=" is_arithmetic">is_arithmetic</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_compound" title=" is_compound">is_compound</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_fundamental" title=" is_fundamental">is_fundamental</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_member_pointer" title=" is_member_pointer">is_member_pointer</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_object" title=" is_object">is_object</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_scalar" title=" is_scalar">is_scalar</a><span class="special">;</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_typetraits.properties"></a> General Type Properties</h5></div></div></div>
+<p>
+The following templates describe the general properties of a type.</p>
+<p><span class="bold"><strong>Synopsis:</strong></span></p>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.alignment_of" title=" alignment_of">alignment_of</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_nothrow_assign" title=" has_nothrow_assign">has_nothrow_assign</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_nothrow_constructor" title=" has_nothrow_constructor">has_nothrow_constructor</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_nothrow_copy" title=" has_nothrow_copy">has_nothrow_copy</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_trivial_constructor" title=" has_trivial_constructor">has_trivial_constructor</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_trivial_copy" title=" has_trivial_copy">has_trivial_copy</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_trivial_destructor" title=" has_trivial_destructor">has_trivial_destructor</a><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">
+struct</span> <a href="reference.html#boost_typetraits.has_virtual_destructor" title=" has_virtual_destructor">has_virtual_destructor</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_abstract" title=" is_abstract">is_abstract</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_const" title=" is_const">is_const</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_empty" title=" is_empty">is_empty</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_stateless" title=" is_stateless">is_stateless</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_pod" title=" is_pod">is_pod</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_polymorphic" title=" is_polymorphic">is_polymorphic</a><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">
+struct</span> <a href="reference.html#boost_typetraits.is_volatile" title=" is_volatile">is_volatile</a><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="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> <a href="reference.html#boost_typetraits.extent" title=" extent">extent</a><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">
+struct</span> <a href="reference.html#boost_typetraits.rank" title=" rank">rank</a><span class="special">;</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="boost_typetraits.relate"></a> Relationships Between Two Types</h5></div></div></div>
+<p>
+These templates determine the whether there is a relationship
+between two types:</p>
+<p><span class="bold"><strong>Synopsis:</strong></span></p>
+<pre class="programlisting"><code class="literal"><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> <a href="reference.html#boost_typetraits.is_base_of" title=" is_base_of">is_base_of</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_convertible" title=" is_convertible">is_convertible</a><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><span class="identifier"> U</span><span class="special">&gt;</span><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.is_same" title=" is_same">is_same</a><span class="special">;</span></code></pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.transform"></a> Type Traits that Transform One Type to Another</h4></div></div></div>
+<p>
+The following templates transform one type to another,
+based upon some well-defined rule.
+Each template has a single member called <code class="computeroutput"><span class="identifier">type</span></code> that is the
+result of applying the transformation to the template argument <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>Synopsis:</strong></span></p>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.add_const" title=" add_const">add_const</a><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">
+struct</span> <a href="reference.html#boost_typetraits.add_cv" title=" add_cv">add_cv</a><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">
+struct</span> <a href="reference.html#boost_typetraits.add_pointer" title=" add_pointer">add_pointer</a><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">
+struct</span> <a href="reference.html#boost_typetraits.add_reference" title=" add_reference">add_reference</a><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">
+struct</span> <a href="reference.html#boost_typetraits.add_volatile" title=" add_volatile">add_volatile</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_all_extents" title=" remove_all_extents">remove_all_extents</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_const" title=" remove_const">remove_const</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_cv" title=" remove_cv">remove_cv</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_extent" title=" remove_extent">remove_extent</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_pointer" title=" remove_pointer">remove_pointer</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_reference" title=" remove_reference">remove_reference</a><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">
+struct</span> <a href="reference.html#boost_typetraits.remove_volatile" title=" remove_volatile">remove_volatile</a><span class="special">;</span></code></pre>
+<a name="transform.broken_compiler_workarounds_"></a><h4>
+<a name="id1595013"></a>Broken Compiler Workarounds:</h4>
+<p>
+For all of these templates support for partial specialization of class templates is
+required to correctly implement the transformation.
+On the other hand, practice shows that many of the templates from this
+category are very useful, and often essential for implementing some
+generic libraries. Lack of these templates is often one of the major
+limiting factors in porting those libraries to compilers that do not yet
+support this language feature. As some of these compilers are going to be
+around for a while, and at least one of them is very wide-spread,
+it was decided that the library should provide workarounds where possible.</p>
+<p>
+The basic idea behind the workaround is to manually define full
+specializations of all type transformation templates for all fundamental types,
+and all their 1st and 2nd rank cv-[un]qualified derivative pointer types, and to
+provide a user-level macro that will define all the explicit specializations needed
+for any user-defined type T.</p>
+<p>
+The first part guarantees the successful compilation of something like this:</p>
+<pre class="programlisting"><code class="literal"><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><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="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="keyword"> const</span><span class="keyword"> volatile</span><span class="special">*</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">*</span><span class="keyword"> const</span><span class="keyword"> volatile</span><span class="special">*</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></code></pre>
+<p>
+and the second part provides the library's users with a mechanism to make the
+above code work not only for <code class="computeroutput"><span class="keyword">char</span></code>, <code class="computeroutput"><span class="keyword">int</span></code> or other built-in type,
+but for they own types as well:</p>
+<pre class="programlisting"><code class="literal"><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:
+</span><span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span><span class="comment">
+// transformations on myspace::MyClass now work:
+</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="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span><span class="identifier"> remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</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="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span><span class="identifier"> remove_const</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span><span class="comment">
+// etc.
+</span></code></pre>
+<p>
+Note that the macro BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION evaluates
+to nothing on those compilers that <span class="bold"><strong>do</strong></span> support partial specialization.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.alignment"></a> Synthesizing Types with Specific Alignments</h4></div></div></div>
+<p>
+Some low level memory management routines need to synthesize a POD type with
+specific alignment properties. The template <code class="computeroutput"><a href="reference.html#boost_typetraits.type_with_alignment" title=" type_with_alignment">type_with_alignment</a></code> finds the smallest
+type with a specified alignment, while template <code class="computeroutput"><a href="reference.html#boost_typetraits.aligned_storage" title=" aligned_storage">aligned_storage</a></code> creates a type
+with a specific size and alignment.</p>
+<p><span class="bold"><strong>Synopsis</strong></span></p>
+<pre class="programlisting"><code class="literal"><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> <a href="reference.html#boost_typetraits.type_with_alignment" title=" type_with_alignment">type_with_alignment</a><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><span class="keyword">
+struct</span> <a href="reference.html#boost_typetraits.aligned_storage" title=" aligned_storage">aligned_storage</a><span class="special">;</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.function"></a> Decomposing Function Types</h4></div></div></div>
+<p>
+The class template <a href="reference.html#boost_typetraits.function_traits" title=" function_traits">function_traits</a> extracts information from function types
+(see also <a href="reference.html#boost_typetraits.is_function" title=" is_function">is_function</a>). This traits class allows you to tell how many arguments
+a function takes, what those argument types are, and what the return type is.</p>
+<p><span class="bold"><strong>Synopsis</strong></span></p>
+<pre class="programlisting"><code class="literal"><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> <a href="reference.html#boost_typetraits.function_traits" title=" function_traits">function_traits</a><span class="special">;</span></code></pre>
+</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, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="background.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="user_defined.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/credits.html b/doc/html/boost_typetraits/credits.html
new file mode 100644
index 0000000000..b4fffb5164
--- /dev/null
+++ b/doc/html/boost_typetraits/credits.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Credits</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="reference.html" title=" Alphabetical Reference">
+<link rel="next" href="../variant.html" title="Chapter 15. Boost.Variant">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="../variant.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_typetraits.credits"></a> Credits</h3></div></div></div>
+<p>
+This documentation was pulled together by John Maddock, using
+<a href="../../../tools/quickbook/doc/html/index.html" target="_top">Boost.Quickbook</a>
+and <a href="../boostbook.html" target="_top">Boost.DocBook</a>.</p>
+<p>
+The original version of this library was created by Steve Cleary,
+Beman Dawes, Howard Hinnant, and John Maddock. John Maddock is the
+current maintainer of the library.</p>
+<p>
+This version of type traits library is based on contributions by
+Adobe Systems Inc, David Abrahams, Steve Cleary,
+Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek.</p>
+<p>
+Mat Marcus and Jesse Jones invented, and
+<a href="http://opensource.adobe.com/project4/project.shtml" target="_top">published a paper describing</a>,
+the partial specialization workarounds used in this library.</p>
+<p>
+Aleksey Gurtovoy added MPL integration to the library.</p>
+<p>
+The <a href="reference.html#boost_typetraits.is_convertible" title=" is_convertible">is_convertible</a> template is based on code originally devised by
+Andrei Alexandrescu, see
+"<a href="http://www.cuj.com/experts/1810/alexandr.htm?topic=experts" target="_top">Generic&lt;Programming&gt;: Mappings between Types and Values</a>".</p>
+<p>
+The latest version of this library and documentation can be found at
+<a href="http://www.boost.org" target="_top">www.boost.org</a>. Bugs, suggestions and discussion
+should be directed to boost@lists.boost.org
+(see <a href="http://www.boost.org/more/mailing_lists.htm#main" target="_top">www.boost.org/more/mailing_lists.htm#main</a> for subscription details).</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 © 2000, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="../variant.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/examples.html b/doc/html/boost_typetraits/examples.html
new file mode 100644
index 0000000000..9612de1fc7
--- /dev/null
+++ b/doc/html/boost_typetraits/examples.html
@@ -0,0 +1,231 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Examples</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="mpl.html" title=" MPL Interoperability">
+<link rel="next" href="reference.html" title=" Alphabetical Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mpl.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="reference.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_typetraits.examples"></a> Examples</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="examples.html#boost_typetraits.copy"> An Optimized Version of std::copy</a></span></dt>
+<dt><span class="section"><a href="examples.html#boost_typetraits.fill"> An Optimised Version of std::fill</a></span></dt>
+<dt><span class="section"><a href="examples.html#boost_typetraits.destruct"> An Example that Omits Destructor Calls For Types with Trivial Destructors</a></span></dt>
+<dt><span class="section"><a href="examples.html#boost_typetraits.iter"> An improved Version of std::iter_swap</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.copy"></a> An Optimized Version of std::copy</h4></div></div></div>
+<p>
+Demonstrates a version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span></code> that uses <code class="computeroutput"><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a></code> to
+determine whether to use <code class="computeroutput"><span class="identifier">memcpy</span></code> to optimise the copy operation
+(see <a href="../../../libs/type_traits/examples/copy_example.cpp" target="_top">copy_example.cpp</a>):</p>
+<pre class="programlisting"><code class="literal"><span class="comment">//
+// opt::copy
+// same semantics as std::copy
+// calls memcpy where appropriate.
+//
+</span><span class="keyword">
+namespace</span><span class="identifier"> detail</span><span class="special">{</span><span class="keyword">
+
+template</span><span class="special">&lt;</span><span class="keyword">typename</span><span class="identifier"> I1</span><span class="special">,</span><span class="keyword"> typename</span><span class="identifier"> I2</span><span class="special">,</span><span class="keyword"> bool</span><span class="identifier"> b</span><span class="special">&gt;</span><span class="identifier">
+I2</span><span class="identifier"> copy_imp</span><span class="special">(</span><span class="identifier">I1</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> I1</span><span class="identifier"> last</span><span class="special">,</span><span class="identifier"> I2</span><span class="identifier"> out</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier"> b</span><span class="special">&gt;&amp;)</span><span class="special">
+{</span><span class="keyword">
+ while</span><span class="special">(</span><span class="identifier">first</span><span class="special"> !=</span><span class="identifier"> last</span><span class="special">)</span><span class="special">
+ {</span><span class="special">
+ *</span><span class="identifier">out</span><span class="special"> =</span><span class="special"> *</span><span class="identifier">first</span><span class="special">;</span><span class="special">
+ ++</span><span class="identifier">out</span><span class="special">;</span><span class="special">
+ ++</span><span class="identifier">first</span><span class="special">;</span><span class="special">
+ }</span><span class="keyword">
+ return</span><span class="identifier"> out</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><span class="identifier">
+T</span><span class="special">*</span><span class="identifier"> copy_imp</span><span class="special">(</span><span class="keyword">const</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> first</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> last</span><span class="special">,</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> out</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="identifier">
+ memcpy</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span><span class="identifier"> first</span><span class="special">,</span><span class="special"> (</span><span class="identifier">last</span><span class="special">-</span><span class="identifier">first</span><span class="special">)*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">));</span><span class="keyword">
+ return</span><span class="identifier"> out</span><span class="special">+(</span><span class="identifier">last</span><span class="special">-</span><span class="identifier">first</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"> I1</span><span class="special">,</span><span class="keyword"> typename</span><span class="identifier"> I2</span><span class="special">&gt;</span><span class="keyword">
+inline</span><span class="identifier"> I2</span><span class="identifier"> copy</span><span class="special">(</span><span class="identifier">I1</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> I1</span><span class="identifier"> last</span><span class="special">,</span><span class="identifier"> I2</span><span class="identifier"> out</span><span class="special">)</span><span class="special">
+{</span><span class="comment">
+ //
+ // We can copy with memcpy if T has a trivial assignment operator,
+ // and if the iterator arguments are actually pointers (this last
+ // requirement we detect with overload resolution):
+ //
+</span><span class="keyword"> typedef</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">I1</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="identifier"> value_type</span><span class="special">;</span><span class="keyword">
+ return</span><span class="identifier"> detail</span><span class="special">::</span><span class="identifier">copy_imp</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span><span class="identifier"> last</span><span class="special">,</span><span class="identifier"> out</span><span class="special">,</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;());</span><span class="special">
+}</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.fill"></a> An Optimised Version of std::fill</h4></div></div></div>
+<p>
+Demonstrates a version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fill</span></code> that uses <code class="computeroutput"><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a></code> to
+determine whether to use <code class="computeroutput"><span class="identifier">memset</span></code> to optimise the fill operation
+(see <a href="../../../libs/type_traits/examples/fill_example.cpp" target="_top">fill_example.cpp</a>):</p>
+<pre class="programlisting"><code class="literal"><span class="comment">//
+// fill
+// same as std::fill, but uses memset where appropriate
+//
+</span><span class="keyword">namespace</span><span class="identifier"> detail</span><span class="special">{</span><span class="keyword">
+
+template</span><span class="special"> &lt;</span><span class="keyword">typename</span><span class="identifier"> I</span><span class="special">,</span><span class="keyword"> typename</span><span class="identifier"> T</span><span class="special">,</span><span class="keyword"> bool</span><span class="identifier"> b</span><span class="special">&gt;</span><span class="keyword">
+void</span><span class="identifier"> do_fill</span><span class="special">(</span><span class="identifier">I</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> I</span><span class="identifier"> last</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="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier"> b</span><span class="special">&gt;&amp;)</span><span class="special">
+{</span><span class="keyword">
+ while</span><span class="special">(</span><span class="identifier">first</span><span class="special"> !=</span><span class="identifier"> last</span><span class="special">)</span><span class="special">
+ {</span><span class="special">
+ *</span><span class="identifier">first</span><span class="special"> =</span><span class="identifier"> val</span><span class="special">;</span><span class="special">
+ ++</span><span class="identifier">first</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><span class="keyword">
+void</span><span class="identifier"> do_fill</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> last</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="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">memset</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span><span class="identifier"> val</span><span class="special">,</span><span class="identifier"> last</span><span class="special">-</span><span class="identifier">first</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">class</span><span class="identifier"> I</span><span class="special">,</span><span class="keyword"> class</span><span class="identifier"> T</span><span class="special">&gt;</span><span class="keyword">
+inline</span><span class="keyword"> void</span><span class="identifier"> fill</span><span class="special">(</span><span class="identifier">I</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> I</span><span class="identifier"> last</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="comment">
+ //
+ // We can do an optimised fill if T has a trivial assignment
+ // operator and if it's size is one:
+ //
+</span><span class="keyword"> typedef</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="special">
+ ::</span><span class="identifier">boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a><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="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span><span class="special"> ==</span><span class="number"> 1</span><span class="special">)&gt;</span><span class="identifier"> truth_type</span><span class="special">;</span><span class="identifier">
+ detail</span><span class="special">::</span><span class="identifier">do_fill</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span><span class="identifier"> last</span><span class="special">,</span><span class="identifier"> val</span><span class="special">,</span><span class="identifier"> truth_type</span><span class="special">());</span><span class="special">
+}</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.destruct"></a> An Example that Omits Destructor Calls For Types with Trivial Destructors</h4></div></div></div>
+<p>
+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 <a href="../../../libs/type_traits/examples/trivial_destructor_example.cpp" target="_top">trivial_destructor_example.cpp</a>):</p>
+<pre class="programlisting"><code class="literal"><span class="comment">//
+// algorithm destroy_array:
+// The reverse of std::unitialized_copy, takes a block of
+// initialized memory and calls destructors on all objects therein.
+//
+</span><span class="keyword">
+namespace</span><span class="identifier"> detail</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">
+void</span><span class="identifier"> do_destroy_array</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> last</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="keyword">
+ while</span><span class="special">(</span><span class="identifier">first</span><span class="special"> !=</span><span class="identifier"> last</span><span class="special">)</span><span class="special">
+ {</span><span class="identifier">
+ first</span><span class="special">-&gt;~</span><span class="identifier">T</span><span class="special">();</span><span class="special">
+ ++</span><span class="identifier">first</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">class</span><span class="identifier"> T</span><span class="special">&gt;</span><span class="keyword">
+inline</span><span class="keyword"> void</span><span class="identifier"> do_destroy_array</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span><span class="identifier"> first</span><span class="special">,</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> last</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="special">
+}</span><span class="special">
+
+}</span><span class="comment"> // namespace detail
+</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">
+inline</span><span class="keyword"> void</span><span class="identifier"> destroy_array</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span><span class="identifier"> p1</span><span class="special">,</span><span class="identifier"> T</span><span class="special">*</span><span class="identifier"> p2</span><span class="special">)</span><span class="special">
+{</span><span class="identifier">
+ detail</span><span class="special">::</span><span class="identifier">do_destroy_array</span><span class="special">(</span><span class="identifier">p1</span><span class="special">,</span><span class="identifier"> p2</span><span class="special">,</span><span class="special"> ::</span><span class="identifier">boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.has_trivial_destructor" title=" has_trivial_destructor">has_trivial_destructor</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span><span class="special">
+}</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.iter"></a> An improved Version of std::iter_swap</h4></div></div></div>
+<p>
+Demonstrates a version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iter_swap</span></code> that use type traits to
+determine whether an it's arguments are proxying iterators or not,
+if they're not then it just does a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">swap</span></code> of it's dereferenced
+arguments (the
+same as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iter_swap</span></code> does), however if they are proxying iterators
+then takes special care over the swap to ensure that the algorithm
+works correctly for both proxying iterators, and even iterators of
+different types
+(see <a href="../../../libs/type_traits/examples/iter_swap_example.cpp" target="_top">iter_swap_example.cpp</a>):</p>
+<pre class="programlisting"><code class="literal"><span class="comment">//
+// iter_swap:
+// tests whether iterator is a proxying iterator or not, and
+// uses optimal form accordingly:
+//
+</span><span class="keyword">namespace</span><span class="identifier"> detail</span><span class="special">{</span><span class="keyword">
+
+template</span><span class="special"> &lt;</span><span class="keyword">typename</span><span class="identifier"> I</span><span class="special">&gt;</span><span class="keyword">
+static</span><span class="keyword"> void</span><span class="identifier"> do_swap</span><span class="special">(</span><span class="identifier">I</span><span class="identifier"> one</span><span class="special">,</span><span class="identifier"> I</span><span class="identifier"> two</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="keyword">
+ typedef</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">I</span><span class="special">&gt;::</span><span class="identifier">value_type</span><span class="identifier"> v_t</span><span class="special">;</span><span class="identifier">
+ v_t</span><span class="identifier"> v</span><span class="special"> =</span><span class="special"> *</span><span class="identifier">one</span><span class="special">;</span><span class="special">
+ *</span><span class="identifier">one</span><span class="special"> =</span><span class="special"> *</span><span class="identifier">two</span><span class="special">;</span><span class="special">
+ *</span><span class="identifier">two</span><span class="special"> =</span><span class="identifier"> v</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"> I</span><span class="special">&gt;</span><span class="keyword">
+static</span><span class="keyword"> void</span><span class="identifier"> do_swap</span><span class="special">(</span><span class="identifier">I</span><span class="identifier"> one</span><span class="special">,</span><span class="identifier"> I</span><span class="identifier"> two</span><span class="special">,</span><span class="keyword"> const</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">&amp;)</span><span class="special">
+{</span><span class="keyword">
+ using</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">swap</span><span class="special">;</span><span class="identifier">
+ swap</span><span class="special">(*</span><span class="identifier">one</span><span class="special">,</span><span class="special"> *</span><span class="identifier">two</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"> I1</span><span class="special">,</span><span class="keyword"> typename</span><span class="identifier"> I2</span><span class="special">&gt;</span><span class="keyword">
+inline</span><span class="keyword"> void</span><span class="identifier"> iter_swap</span><span class="special">(</span><span class="identifier">I1</span><span class="identifier"> one</span><span class="special">,</span><span class="identifier"> I2</span><span class="identifier"> two</span><span class="special">)</span><span class="special">
+{</span><span class="comment">
+ //
+ // See is both arguments are non-proxying iterators,
+ // and if both iterator the same type:
+ //
+</span><span class="keyword"> typedef</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">I1</span><span class="special">&gt;::</span><span class="identifier">reference</span><span class="identifier"> r1_t</span><span class="special">;</span><span class="keyword">
+ typedef</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">I2</span><span class="special">&gt;::</span><span class="identifier">reference</span><span class="identifier"> r2_t</span><span class="special">;</span><span class="keyword">
+
+ typedef</span><span class="identifier"> boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="special">
+ ::</span><span class="identifier">boost</span><span class="special">::</span><a href="reference.html#boost_typetraits.is_reference" title=" is_reference">is_reference</a><span class="special">&lt;</span><span class="identifier">r1_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><a href="reference.html#boost_typetraits.is_reference" title=" is_reference">is_reference</a><span class="special">&lt;</span><span class="identifier">r2_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><a href="reference.html#boost_typetraits.is_same" title=" is_same">is_same</a><span class="special">&lt;</span><span class="identifier">r1_t</span><span class="special">,</span><span class="identifier"> r2_t</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">&gt;</span><span class="identifier"> truth_type</span><span class="special">;</span><span class="identifier">
+
+ detail</span><span class="special">::</span><span class="identifier">do_swap</span><span class="special">(</span><span class="identifier">one</span><span class="special">,</span><span class="identifier"> two</span><span class="special">,</span><span class="identifier"> truth_type</span><span class="special">());</span><span class="special">
+}</span></code></pre>
+</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, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mpl.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/intrinsics.html b/doc/html/boost_typetraits/intrinsics.html
new file mode 100644
index 0000000000..39d4edaaa0
--- /dev/null
+++ b/doc/html/boost_typetraits/intrinsics.html
@@ -0,0 +1,137 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Support for Compiler Intrinsics</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="user_defined.html" title=" User Defined Specializations">
+<link rel="next" href="mpl.html" title=" MPL Interoperability">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="user_defined.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="mpl.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_typetraits.intrinsics"></a> Support for Compiler Intrinsics</h3></div></div></div>
+<p>
+There are some traits that can not be implemented within the current C++ language:
+to make these traits "just work" with user defined types, some kind of additional
+help from the compiler is required. Currently (May 2005) MWCW 9 and Visual C++ 8
+provide the necessary intrinsics, and other compilers will no doubt follow in due
+course.</p>
+<p>
+The Following traits classes always need compiler support to do the right thing
+for all types
+(but all have safe fallback positions if this support is unavailable):</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="reference.html#boost_typetraits.is_union" title=" is_union">is_union</a></li>
+<li><a href="reference.html#boost_typetraits.is_pod" title=" is_pod">is_pod</a></li>
+<li><a href="reference.html#boost_typetraits.has_trivial_constructor" title=" has_trivial_constructor">has_trivial_constructor</a></li>
+<li><a href="reference.html#boost_typetraits.has_trivial_copy" title=" has_trivial_copy">has_trivial_copy</a></li>
+<li><a href="reference.html#boost_typetraits.has_trivial_assign" title=" has_trivial_assign">has_trivial_assign</a></li>
+<li><a href="reference.html#boost_typetraits.has_trivial_destructor" title=" has_trivial_destructor">has_trivial_destructor</a></li>
+<li><a href="reference.html#boost_typetraits.has_nothrow_constructor" title=" has_nothrow_constructor">has_nothrow_constructor</a></li>
+<li><a href="reference.html#boost_typetraits.has_nothrow_copy" title=" has_nothrow_copy">has_nothrow_copy</a></li>
+<li><a href="reference.html#boost_typetraits.has_nothrow_assign" title=" has_nothrow_assign">has_nothrow_assign</a></li>
+<li><a href="reference.html#boost_typetraits.has_virtual_destructor" title=" has_virtual_destructor">has_virtual_destructor</a></li>
+</ul></div>
+<p>
+The following traits classes can't be portably implemented in the C++ language,
+although in practice, the implementations do in fact do the right thing on all
+the compilers we know about:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="reference.html#boost_typetraits.is_empty" title=" is_empty">is_empty</a></li>
+<li><a href="reference.html#boost_typetraits.is_polymorphic" title=" is_polymorphic">is_polymorphic</a></li>
+</ul></div>
+<p>
+The following traits classes are dependent on one or more of the above:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="reference.html#boost_typetraits.is_class" title=" is_class">is_class</a></li>
+<li><a href="reference.html#boost_typetraits.is_stateless" title=" is_stateless">is_stateless</a></li>
+</ul></div>
+<p>
+The hooks for compiler-intrinsic support are defined in
+<a href="../../../boost/type_traits/intrinsics.hpp" target="_top">boost/type_traits/intrinsics.hpp</a>, adding support for new compilers is simply
+a matter of defining one of more of the following macros:</p>
+<div class="informaltable">
+<h4>
+<a name="id1596765"></a><span class="table-title">Macros for Compiler Intrinsics</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>BOOST_IS_UNION(T)</th>
+<th>Should evaluate to true if T is a union type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>BOOST_IS_POD(T)</td>
+<td>Should evaluate to true if T is a POD type</td>
+</tr>
+<tr>
+<td>BOOST_IS_EMPTY(T)</td>
+<td>Should evaluate to true if T is an empty struct or union</td>
+</tr>
+<tr>
+<td>BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)</td>
+<td>Should evaluate to true if the default constructor for T is trivial (i.e. has no effect)</td>
+</tr>
+<tr>
+<td>BOOST_HAS_TRIVIAL_COPY(T)</td>
+<td>Should evaluate to true if T has a trivial copy constructor (and can therefore be replaced by a call to memcpy)</td>
+</tr>
+<tr>
+<td>BOOST_HAS_TRIVIAL_ASSIGN(T)</td>
+<td>Should evaluate to true if T has a trivial assignment operator (and can therefore be replaced by a call to memcpy)</td>
+</tr>
+<tr>
+<td>BOOST_HAS_TRIVIAL_DESTRUCTOR(T)</td>
+<td>Should evaluate to true if T has a trivial destructor (i.e. ~T() has no effect)</td>
+</tr>
+<tr>
+<td>BOOST_HAS_NOTHROW_CONSTRUCTOR(T)</td>
+<td>Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span><span class="identifier"> x</span><span class="special">;</span></code> can not throw</td>
+</tr>
+<tr>
+<td>BOOST_HAS_NOTHROW_COPY(T)</td>
+<td>Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> can not throw</td>
+</tr>
+<tr>
+<td>BOOST_HAS_NOTHROW_ASSIGN(T)</td>
+<td>Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span><span class="identifier"> t</span><span class="special">,</span><span class="identifier"> u</span><span class="special">;</span><span class="identifier"> t</span><span class="special"> =</span><span class="identifier"> u</span></code> can not throw</td>
+</tr>
+<tr>
+<td>BOOST_HAS_VIRTUAL_DESTRUCTOR(T)</td>
+<td>Should evaluate to true T has a virtual destructor</td>
+</tr>
+</tbody>
+</table>
+</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, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="user_defined.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="mpl.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/mpl.html b/doc/html/boost_typetraits/mpl.html
new file mode 100644
index 0000000000..ff2e627b00
--- /dev/null
+++ b/doc/html/boost_typetraits/mpl.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> MPL Interoperability</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="intrinsics.html" title=" Support for Compiler Intrinsics">
+<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.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="intrinsics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.mpl"></a> MPL Interoperability</h3></div></div></div>
+<p>
+All the value based traits in this library conform to MPL's requirements
+for an <a href="../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant type</a>: that includes a number of rather intrusive
+workarounds for broken compilers.</p>
+<p>
+Purely as an implementation detail, this
+means that <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code> inherits from <a href="../../../libs/mpl/doc/refmanual/bool.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code></a>, <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code> inherits
+from <a href="../../../libs/mpl/doc/refmanual/bool.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code></a>, and <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier"> v</span><span class="special">&gt;</span></code> inherits from
+<a href="../../../libs/mpl/doc/refmanual/integral-c.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">v</span><span class="special">&gt;</span></code></a> (provided <code class="computeroutput"><span class="identifier">T</span></code> is not <code class="computeroutput"><span class="keyword">bool</span></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 © 2000, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="intrinsics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/reference.html b/doc/html/boost_typetraits/reference.html
new file mode 100644
index 0000000000..88d058ce65
--- /dev/null
+++ b/doc/html/boost_typetraits/reference.html
@@ -0,0 +1,1768 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Alphabetical Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="examples.html" title=" Examples">
+<link rel="next" href="credits.html" title=" Credits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="credits.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_typetraits.reference"></a> Alphabetical Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#boost_typetraits.add_const"> add_const</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.add_cv"> add_cv</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.add_pointer"> add_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.add_reference"> add_reference</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.add_volatile"> add_volatile</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.aligned_storage"> aligned_storage</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.alignment_of"> alignment_of</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.extent"> extent</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.function_traits"> function_traits</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_nothrow_assign"> has_nothrow_assign</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_nothrow_constructor"> has_nothrow_constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_nothrow_copy"> has_nothrow_copy</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_trivial_assign"> has_trivial_assign</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_trivial_constructor"> has_trivial_constructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_trivial_copy"> has_trivial_copy</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_trivial_destructor"> has_trivial_destructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.has_virtual_destructor"> has_virtual_destructor</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.integral_constant"> integral_constant</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_abstract"> is_abstract</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_arithmetic"> is_arithmetic</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_array"> is_array</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_base_of"> is_base_of</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_class"> is_class</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_compound"> is_compound</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_const"> is_const</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_convertible"> is_convertible</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_empty"> is_empty</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_enum"> is_enum</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_floating_point"> is_floating_point</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_function"> is_function</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_fundamental"> is_fundamental</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_integral"> is_integral</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_member_function_pointer"> is_member_function_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_member_object_pointer"> is_member_object_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_member_pointer"> is_member_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_object"> is_object</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_pod"> is_pod</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_pointer"> is_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_polymorphic"> is_polymorphic</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_same"> is_same</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_scalar"> is_scalar</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_stateless"> is_stateless</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_reference"> is_reference</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_union"> is_union</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_void"> is_void</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.is_volatile"> is_volatile</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.rank"> rank</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_all_extents"> remove_all_extents</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_const"> remove_const</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_cv"> remove_cv</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_extent"> remove_extent</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_pointer"> remove_pointer</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_reference"> remove_reference</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.remove_volatile"> remove_volatile</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_typetraits.type_with_alignment"> type_with_alignment</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.add_const"></a> add_const</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span><span class="keyword"> const</span></code> for all <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">add_const</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1600382"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.add_cv"></a> add_cv</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span><span class="keyword"> const</span><span class="keyword"> volatile</span></code> for all <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">add_cv</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1600817"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span><span class="keyword"> const</span><span class="keyword"> volatile</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.add_pointer"></a> add_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">*</span></code>.</p>
+<p>
+The rationale for this template
+is that it produces the same type as <code class="computeroutput"><span class="identifier">TYPEOF</span><span class="special">(&amp;</span><span class="identifier">t</span><span class="special">)</span></code>,
+where <code class="computeroutput"><span class="identifier">t</span></code> is an object of type <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.1.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">add_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1601313"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">**</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">**</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.add_reference"></a> add_reference</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> If <code class="computeroutput"><span class="identifier">T</span></code> is not a reference type then <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span></code>, otherwise <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.2.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">add_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1601752"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.add_volatile"></a> add_volatile</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span><span class="keyword"> volatile</span></code> for all <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">add_volatile</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1602182"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> volatile</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span><span class="keyword"> volatile</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">add_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.aligned_storage"></a> aligned_storage</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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"> 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> a built-in or POD type with an alignment
+that is a multiple of <code class="computeroutput"><span class="identifier">Align</span></code>.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">aligned_storage</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.alignment_of"></a> alignment_of</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> Class template alignment_of inherits from
+<code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code>, where <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> is the
+alignment of type T.</p>
+<p><span class="emphasis"><em>Note: strictly speaking you should only rely on
+the value of <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> being a multiple of the true alignment of T, although
+in practice it does compute the correct value in all the cases we know about.</em></span></p>
+<p><span class="bold"><strong>Header:</strong></span><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">alignment_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">alignment_of</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="keyword">int</span><span class="special">)&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">alignment_of</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="keyword">char</span><span class="special">)&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">alignment_of</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression with value <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">alignment_of</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.extent"></a> extent</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> Class template extent inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code>,
+where <code class="computeroutput"><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">)</span></code> is the number of elements in the N'th array dimention of type <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p>
+If <code class="computeroutput"><span class="identifier">T</span></code> is not an array type, or if <code class="computeroutput"><span class="identifier">N</span><span class="special"> &gt;</span> <a href="reference.html#boost_typetraits.rank" title=" rank">rank</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code>, or if the N'th array bound
+is incomplete, then <code class="computeroutput"><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">)</span></code> is zero.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">extent</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">1</span><span class="special">]&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="number"> 0</span><span class="special">&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">[</span><span class="number">2</span><span class="special">][</span><span class="number">3</span><span class="special">][</span><span class="number">4</span><span class="special">],</span><span class="number"> 1</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="number"> 3</span><span class="special">&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">4</span><span class="special">]&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>4</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[][</span><span class="number">2</span><span class="special">]&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>0</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[][</span><span class="number">2</span><span class="special">],</span><span class="number"> 1</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>2</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>0</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.function_traits"></a> function_traits</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="keyword">
+ typedef</span> <em class="replaceable"><code>see-below</code></em><span class="identifier"> result_type</span><span class="special">;</span><span class="keyword">
+ typedef</span> <em class="replaceable"><code>see-below</code></em>           arg<em class="replaceable"><code>N</code></em>_type<span class="special">;</span><span class="special">
+};</span></code></pre>
+<p>
+The class template function_traits will only compile if:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+The compiler supports partial specialization of class templates.
+</li>
+<li>
+The template argument <code class="computeroutput"><span class="identifier">T</span></code> is a <span class="emphasis"><em>function type</em></span>, note that this <span class="emphasis"><em><span class="bold"><strong>is not</strong></span></em></span>
+the same thing as a <span class="emphasis"><em>pointer to a function</em></span>.
+</li>
+</ul></div>
+<div class="informaltable">
+<h4>
+<a name="id1604129"></a><span class="table-title">Function Traits Members</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Member</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">arity</span></code></td>
+<td>An integral constant expression that gives the number of arguments accepted by the function type <code class="computeroutput"><span class="identifier">F</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">result_type</span></code></td>
+<td>The type returned by function type <code class="computeroutput"><span class="identifier">F</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span>arg<em class="replaceable"><code>N</code></em>_type</code></td>
+<td>The <em class="replaceable"><code>N</code></em>th argument type of function type <code class="computeroutput"><span class="identifier">F</span></code>, where <code class="computeroutput"><span class="number">1</span><span class="special"> &lt;=</span><span class="identifier"> N</span><span class="special"> &lt;=</span><span class="identifier"> arity</span></code> of <code class="computeroutput"><span class="identifier">F</span></code>.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="informaltable">
+<h4>
+<a name="id1604309"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special"> (</span><span class="keyword">void</span><span class="special">)&gt;::</span><span class="identifier">arity</span></code></td>
+<td>An integral constant expression that has the value 0.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">)&gt;::</span><span class="identifier">arity</span></code></td>
+<td>An integral constant expression that has the value 1.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> long</span><span class="special">,</span><span class="keyword"> double</span><span class="special">,</span><span class="keyword"> void</span><span class="special">*)&gt;::</span><span class="identifier">arity</span></code></td>
+<td>An integral constant expression that has the value 4.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special"> (</span><span class="keyword">void</span><span class="special">)&gt;::</span><span class="identifier">result_type</span></code></td>
+<td>The type <code class="computeroutput"><span class="keyword">void</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">)&gt;::</span><span class="identifier">result_type</span></code></td>
+<td>The type <code class="computeroutput"><span class="keyword">long</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">)&gt;::</span><span class="identifier">arg0_type</span></code></td>
+<td>The type <code class="computeroutput"><span class="keyword">int</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> long</span><span class="special">,</span><span class="keyword"> double</span><span class="special">,</span><span class="keyword"> void</span><span class="special">*)&gt;::</span><span class="identifier">arg3_type</span></code></td>
+<td>The type <code class="computeroutput"><span class="keyword">void</span><span class="special">*</span></code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> long</span><span class="special">,</span><span class="keyword"> double</span><span class="special">,</span><span class="keyword"> void</span><span class="special">*)&gt;::</span><span class="identifier">arg4_type</span></code></td>
+<td>A compiler error: there is no <code class="computeroutput"><span class="identifier">arg4_type</span></code> since there are only three arguments.</td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">function_traits</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (*)(</span><span class="keyword">void</span><span class="special">)&gt;::</span><span class="identifier">arity</span></code></td>
+<td>A compiler error: argument type is a <span class="emphasis"><em>function pointer</em></span>, and not a <span class="emphasis"><em>function type</em></span>.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_nothrow_assign"></a> has_nothrow_assign</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a non-throwing assignment-operator
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Type <code class="computeroutput"><span class="identifier">T</span></code>
+must be a complete type.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+<code class="computeroutput"><span class="identifier">has_nothrow_assign</span></code> will never report that a class or struct has a
+non-throwing assignment-operator; this is always safe, if possibly sub-optimal.
+Currently (May 2005) only Visual C++ 8 has the necessary compiler support to ensure that this
+trait "just works".</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_nothrow_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_nothrow_constructor"></a> has_nothrow_constructor</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a non-throwing default-constructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Type <code class="computeroutput"><span class="identifier">T</span></code>
+must be a complete type.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+<code class="computeroutput"><span class="identifier">has_nothrow_constructor</span></code> will never report that a class or struct has a
+non-throwing default-constructor; this is always safe, if possibly sub-optimal.
+Currently (May 2005) only Visual C++ 8 has the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to ensure that this
+trait "just works".</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_nothrow_constructor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_nothrow_copy"></a> has_nothrow_copy</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a non-throwing copy-constructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Type <code class="computeroutput"><span class="identifier">T</span></code>
+must be a complete type.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+<code class="computeroutput"><span class="identifier">has_nothrow_copy</span></code> will never report that a class or struct has a
+non-throwing copy-constructor; this is always safe, if possibly sub-optimal.
+Currently (May 2005) only Visual C++ 8 has the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to ensure that this
+trait "just works".</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_nothrow_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_trivial_assign"></a> has_trivial_assign</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a trivial assignment-operator
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+If a type has a trivial assignment-operator then the operator has the same effect
+as copying the bits of one object to the other:
+calls to the operator can be safely replaced with a call to <code class="computeroutput"><span class="identifier">memcpy</span></code>.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+has_trivial_assign will never report that a user-defined class or struct has a
+trivial constructor; this is always safe, if possibly sub-optimal. Currently
+(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to detect
+user-defined classes with trivial constructors.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 12.8p11.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_trivial_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_assign</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_assign</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><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_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_trivial_constructor"></a> has_trivial_constructor</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a trivial default-constructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+If a type has a trivial default-constructor then the constructor have no effect:
+calls to the constructor can be safely omitted. Note that using meta-programming
+to omit a call to a single trivial-constructor call is of no benefit whatsoever.
+However, if loops and/or exception handling code can also be omitted, then some
+benefit in terms of code size and speed can be obtained.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+has_trivial_constructor will never report that a user-defined class or struct has a
+trivial constructor; this is always safe, if possibly sub-optimal. Currently
+(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to detect
+user-defined classes with trivial constructors.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 12.1p6.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_trivial_constructor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><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_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_trivial_copy"></a> has_trivial_copy</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a trivial copy-constructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+If a type has a trivial copy-constructor then the constructor has the same effect
+as copying the bits of one object to the other:
+calls to the constructor can be safely replaced with a call to <code class="computeroutput"><span class="identifier">memcpy</span></code>.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+has_trivial_copy will never report that a user-defined class or struct has a
+trivial constructor; this is always safe, if possibly sub-optimal. Currently
+(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to detect
+user-defined classes with trivial constructors.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 12.8p6.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_trivial_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_copy</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_copy</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_copy</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_copy</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><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_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_trivial_destructor"></a> has_trivial_destructor</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a trivial destructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+If a type has a trivial destructor then the destructor has no effect:
+calls to the destructor can be safely omitted. Note that using meta-programming
+to omit a call to a single trivial-constructor call is of no benefit whatsoever.
+However, if loops and/or exception handling code can also be omitted, then some
+benefit in terms of code size and speed can be obtained.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class
+templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler,
+has_trivial_destructor will never report that a user-defined class or struct has a
+trivial destructor; this is always safe, if possibly sub-optimal. Currently
+(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to detect
+user-defined classes with trivial constructors.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 12.4p3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_trivial_destructor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_destructor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_destructor</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_destructor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">has_trivial_destructor</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><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_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.has_virtual_destructor"></a> has_virtual_destructor</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) type with a virtual destructor
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> This trait is provided for completeness, since it's part of the
+Technical Report on C++ Library Extensions. However, there is currently no
+way to portably implement this trait. The default version provided
+always inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>, and has to be explicitly specialized for
+types with virtual destructors unless the compiler used has compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a>
+that enable the trait to do the right thing: currently (May 2005) only Visual C++
+8 has the necessary <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 12.4.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">has_virtual_destructor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.integral_constant"></a> integral_constant</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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><span class="keyword">
+ typedef</span><span class="identifier"> T</span><span class="identifier"> value_type</span><span class="special">;</span><span class="keyword">
+ static</span><span class="keyword"> const</span><span class="identifier"> T</span><span class="identifier"> value</span><span class="special"> =</span><span class="identifier"> val</span><span class="special">;</span><span class="special">
+};</span><span class="keyword">
+
+typedef</span><span class="identifier"> integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword"> true</span><span class="special">&gt;</span><span class="identifier"> true_type</span><span class="special">;</span><span class="keyword">
+typedef</span><span class="identifier"> integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword"> false</span><span class="special">&gt;</span><span class="identifier"> false_type</span><span class="special">;</span></code></pre>
+<p>
+Class template <code class="computeroutput"><span class="identifier">integral_constant</span></code> is the common base class for all the value-based
+type traits. The two typedef's <code class="computeroutput"><span class="identifier">true_type</span></code> and <code class="computeroutput"><span class="identifier">false_type</span></code> are provided for
+convenience: most of the value traits are Boolean properties and so will inherit from
+one of these.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_abstract"></a> is_abstract</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) abstract type then inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 10.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_abstract</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> The compiler must support DR337 (as of April 2005: GCC 3.4, VC++ 7.1 (and later),
+ Intel C++ 7 (and later), and Comeau 4.3.2).
+Otherwise behaves the same as <a href="reference.html#boost_typetraits.is_polymorphic" title=" is_polymorphic">is_polymorphic</a>;
+this is the "safe fallback position" for which polymorphic types are always
+regarded as potentially abstract. The macro BOOST_NO_IS_ABSTRACT is used to
+signify that the implementation is buggy, users should check for this in their
+own code if the "safe fallback" is not suitable for their particular use-case.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><span class="keyword">class</span><span class="identifier"> abc</span><span class="special">{</span><span class="keyword"> virtual</span><span class="special"> ~</span><span class="identifier">abc</span><span class="special">()</span><span class="special"> =</span><span class="number"> 0</span><span class="special">;</span><span class="special"> };</span></code></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_abstract</span><span class="special">&lt;</span><span class="identifier">abc</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_abstract</span><span class="special">&lt;</span><span class="identifier">abc</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_abstract</span><span class="special">&lt;</span><span class="identifier">abc</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_abstract</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_arithmetic"></a> is_arithmetic</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) arithmetic type then inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Arithmetic types include
+integral and floating point types (see also <a href="reference.html#boost_typetraits.is_integral" title=" is_integral">is_integral</a> and <a href="reference.html#boost_typetraits.is_floating_point" title=" is_floating_point">is_floating_point</a>).</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.1p8.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_arithmetic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_arithmetic</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_arithmetic</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_arithmetic</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_arithmetic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_array"></a> is_array</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) array type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.4.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support
+partial-specialization of class templates, then this template
+can give the wrong result with function types.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_array</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">2</span><span class="special">]&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_array</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">[</span><span class="number">2</span><span class="special">][</span><span class="number">3</span><span class="special">]&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_array</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">[]&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_base_of"></a> is_base_of</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If Base is base class of type Derived then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+This template will detect non-public base classes, and ambiguous base classes.</p>
+<p>
+Note that a class is not considered to be it's own base class,
+likewise, if either <code class="computeroutput"><span class="identifier">Base</span></code> or <code class="computeroutput"><span class="identifier">Derived</span></code> are non-class types,
+then the class will always inherit from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+Types <code class="computeroutput"><span class="identifier">Base</span></code> and <code class="computeroutput"><span class="identifier">Derived</span></code> must not be incomplete types.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 10.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_base_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class templates,
+then this template can not be used with function types. There are some older compilers
+which will produce compiler errors if <code class="computeroutput"><span class="identifier">Base</span></code> is a private base class of <code class="computeroutput"><span class="identifier">Derived</span></code>, or if
+<code class="computeroutput"><span class="identifier">Base</span></code> is an ambiguous base of <code class="computeroutput"><span class="identifier">Derived</span></code>. These compilers include Borland C++, older
+versions of Sun Forte C++, Digital Mars C++, and older versions of EDG based compilers.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><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"> :</span><span class="keyword"> public</span><span class="identifier"> Base</span><span class="special">{};</span></code></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span><span class="identifier"> Derived</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span><span class="identifier"> Derived</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span><span class="identifier"> Derived</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span><span class="identifier"> Base</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: a class is not it's own base.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier"> Base</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the arguments are the wrong way round.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_class"></a> is_class</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) class type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 9.2.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_class</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> Without (some as yet unspecified) help from the compiler,
+we cannot distinguish between union and class types, as a result this type
+will erroneously inherit from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a> for union types. See also <a href="reference.html#boost_typetraits.is_union" title=" is_union">is_union</a>.
+Currently (May 2005) only Visual C++ 8 has the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to
+correctly identify union types, and therefore make is_class function correctly.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><span class="keyword">class</span><span class="identifier"> MyClass</span><span class="special">;</span></code> then:</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><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_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_compound"></a> is_compound</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) compound type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Any type that is not a fundamental type is
+a compound type (see also <a href="reference.html#boost_typetraits.is_fundamental" title=" is_fundamental">is_fundamental</a>).</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_compound</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="identifier">MyEnum</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_compound</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_const"></a> is_const</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (top level) const-qualified type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_const</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the const-qualifier is not
+at the top level in this case.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the const-qualifier is not
+at the top level in this case.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_const</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_convertible"></a> is_convertible</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If an imaginary lvalue of type <code class="computeroutput"><span class="identifier">From</span></code> is convertible to type <code class="computeroutput"><span class="identifier">To</span></code> then
+inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+Type From must not be an incomplete type.</p>
+<p>
+Type To must not be an incomplete, or function type.</p>
+<p>
+No types are considered to be convertible to array types or abstract-class types.</p>
+<p>
+This template can not detect whether a converting-constructor is <code class="computeroutput"><span class="keyword">public</span></code> or not: if
+type <code class="computeroutput"><span class="identifier">To</span></code> has a <code class="computeroutput"><span class="keyword">private</span></code> converting constructor from type <code class="computeroutput"><span class="identifier">From</span></code> then instantiating
+<code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">From</span><span class="special">,</span><span class="identifier"> To</span><span class="special">&gt;</span></code> will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">is_convertible</span></code>
+can not be used to determine whether a type has a <code class="computeroutput"><span class="keyword">public</span></code> copy-constructor or not.</p>
+<p>
+This template will also produce compiler errors if the conversion is ambiguous,
+for example:</p>
+<pre class="programlisting"><code class="literal"><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><span class="comment">
+// This produces a compiler error, the conversion is ambiguous:
+</span><span class="keyword">bool</span><span class="keyword"> const</span><span class="identifier"> y</span><span class="special"> =</span><span class="identifier"> boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">*,</span><span class="identifier">A</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span></code></pre>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 4 and 8.5.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> This template is currently broken with Borland C++ Builder 5 (and earlier),
+for constructor-based conversions, and for the Metrowerks 7 (and earlier)
+compiler in all cases. If the compiler does not support <code class="computeroutput"><a href="reference.html#boost_typetraits.is_abstract" title=" is_abstract">is_abstract</a></code>, then the
+template parameter <code class="computeroutput"><span class="identifier">To</span></code> must not be an abstract type.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_convertible</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> int</span><span class="special">,</span><span class="keyword"> double</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*</span><span class="keyword"> const</span><span class="special">,</span><span class="keyword"> int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*,</span><span class="keyword"> int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the conversion would require a <code class="computeroutput"><span class="keyword">const_cast</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;,</span><span class="keyword"> long</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_empty"></a> is_empty</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is an empty class type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 10p5.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_empty</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> In order to correctly detect empty classes this trait relies on either:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+the compiler implementing zero sized empty base classes, or
+</li>
+<li>
+the compiler providing <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to detect empty classes.
+</li>
+</ul></div>
+<p>
+Can not be used with incomplete types.</p>
+<p>
+Can not be used with union types, until is_union can be made to work.</p>
+<p>
+If the compiler does not support partial-specialization of class templates,
+then this template can not be used with abstract types.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><span class="keyword">struct</span><span class="identifier"> empty_class</span><span class="special"> {};</span></code></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_empty</span><span class="special">&lt;</span><span class="identifier">empty_class</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_empty</span><span class="special">&lt;</span><span class="identifier">empty_class</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_empty</span><span class="special">&lt;</span><span class="identifier">empty_class</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_empty</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_enum"></a> is_enum</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) enum type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 7.2.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_enum</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> Requires a correctly functioning <a href="reference.html#boost_typetraits.is_convertible" title=" is_convertible">is_convertible</a> template;
+ this means that is_enum is currently broken under Borland C++ Builder 5,
+ and for the Metrowerks compiler prior to version 8, other compilers
+ should handle this template just fine.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><span class="keyword">enum</span><span class="identifier"> my_enum</span><span class="special"> {</span><span class="identifier"> one</span><span class="special">,</span><span class="identifier"> two</span><span class="special"> };</span></code></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">my_enum</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">my_enum</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">my_enum</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">my_enum</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">my_enum</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_enum</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_floating_point"></a> is_floating_point</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) floating point type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.1p8.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_floating_point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="keyword">long</span><span class="keyword"> double</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_floating_point</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_function"></a> is_function</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) function type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Note that this template does not detect /pointers
+to functions<span class="emphasis"><em>, or /references to functions</em></span>, these are detected by <a href="reference.html#boost_typetraits.is_pointer" title=" is_pointer">is_pointer</a> and
+<a href="reference.html#boost_typetraits.is_reference" title=" is_reference">is_reference</a> respectively:</p>
+<pre class="programlisting"><code class="literal"><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></code></pre>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2p1 and 8.3.5.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="keyword">void</span><span class="special">)&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">double</span><span class="special">,</span><span class="keyword"> int</span><span class="special">)&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="keyword">double</span><span class="special">,</span><span class="keyword"> int</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (*)(</span><span class="keyword">double</span><span class="special">,</span><span class="keyword"> int</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the argument in this case is a pointer type,
+not a function type.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (&amp;)(</span><span class="keyword">double</span><span class="special">,</span><span class="keyword"> int</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the argument in this case is a
+reference to a function, not a function type.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">double</span><span class="special">,</span><span class="keyword"> int</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the argument in this case is a pointer
+to a member function.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_function</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_fundamental"></a> is_fundamental</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) fundamental type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Fundamental types include integral, floating
+point and void types (see also <a href="reference.html#boost_typetraits.is_integral" title=" is_integral">is_integral</a>, <a href="reference.html#boost_typetraits.is_floating_point" title=" is_floating_point">is_floating_point</a> and <a href="reference.html#boost_typetraits.is_void" title=" is_void">is_void</a>)</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.1.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_fundamental</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_fundamental</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">)&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_fundamental</span><span class="special">&lt;</span><span class="keyword">double</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_fundamental</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_fundamental</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_integral"></a> is_integral</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) integral type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.1p7.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_integral</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> char</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_integral</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_member_function_pointer"></a> is_member_function_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) pointer to a member function
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_member_function_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_function_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">void</span><span class="special">)&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_function_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">char</span><span class="special">)&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_function_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">void</span><span class="special">)</span><span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_function_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the argument in this case is a pointer to
+a data member and not a member function, see <a href="reference.html#boost_typetraits.is_member_object_pointer" title=" is_member_object_pointer">is_member_object_pointer</a>
+and <a href="reference.html#boost_typetraits.is_member_pointer" title=" is_member_pointer">is_member_pointer</a></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_function_pointer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_member_object_pointer"></a> is_member_object_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) pointer to a member object (a data member)
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_member_object_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_object_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_object_pointer</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_object_pointer</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_object_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">void</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the argument in this case is a pointer to
+a member function and not a member object, see <a href="reference.html#boost_typetraits.is_member_function_pointer" title=" is_member_function_pointer">is_member_function_pointer</a>
+and <a href="reference.html#boost_typetraits.is_member_pointer" title=" is_member_pointer">is_member_pointer</a></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_object_pointer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_member_pointer"></a> is_member_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) pointer to a member (either a function
+or a data member)
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_member_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">char</span><span class="special">)&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">void</span><span class="special">)</span><span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_member_pointer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_object"></a> is_object</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) object type
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. All types are object types except
+references, void, and function types.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9p9.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">void</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">void</span><span class="special">)</span><span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> &amp;&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: reference types are not objects</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="keyword">double</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: function types are not objects</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> void</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: void is not an object type</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_object</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_pod"></a> is_pod</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) POD type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9p10 and 9p4.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization
+of class templates, then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler, is_pod will
+never report that a class or struct is a POD; this is always safe,
+if possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the
+necessary compiler-<a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a>.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_pod</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pod</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pod</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pod</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pod</span><span class="special">&lt;</span><span class="identifier">MyClass</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pod</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_pointer"></a> is_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) pointer type (includes function pointers,
+but excludes pointers to members) then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2p2 and 8.3.1.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_polymorphic"></a> is_polymorphic</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) polymorphic type
+then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Type <code class="computeroutput"><span class="identifier">T</span></code> must be a complete type.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 10.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> The implementation requires some knowledge of the compilers ABI,
+it does actually seem to work with the majority of compilers though.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_polymorphic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p>Given: <code class="computeroutput"><span class="keyword">class</span><span class="identifier"> poly</span><span class="special">{</span><span class="keyword"> virtual</span><span class="special"> ~</span><span class="identifier">poly</span><span class="special">();</span><span class="special"> };</span></code></p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_polymorphic</span><span class="special">&lt;</span><span class="identifier">poly</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_polymorphic</span><span class="special">&lt;</span><span class="identifier">poly</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_polymorphic</span><span class="special">&lt;</span><span class="identifier">poly</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_polymorphic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_same"></a> is_same</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T and U are the same types then inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_same</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class templates,
+then this template can not be used with abstract, incomplete or function types.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;,</span><span class="keyword"> int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_scalar"></a> is_scalar</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) scalar type then inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Scalar types include
+integral, floating point, enumeration, pointer, and pointer-to-member types.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9p10.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_scalar</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class templates,
+then this template can not be used with function types.</p>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (</span><span class="identifier">MyClass</span><span class="special">::*)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_scalar</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_stateless"></a> is_stateless</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> Ff T is a stateless type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, otherwise
+from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p>
+Type T must be a complete type.</p>
+<p>
+A stateless type is a type that has no storage and whose constructors and
+destructors are trivial. That means that <code class="computeroutput"><span class="identifier">is_stateless</span></code> only inherits from
+<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a> if the following expression is <code class="computeroutput"><span class="keyword">true</span></code>:</p>
+<pre class="programlisting"><code class="literal"><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><span class="special">
+&amp;&amp;</span><span class="special"> ::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_empty</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code></pre>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9p10.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_stateless</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial-specialization of class templates,
+then this template can not be used with function types.</p>
+<p>
+Without some (as yet unspecified) help from the compiler, is_stateless will never
+report that a class or struct is stateless; this is always safe,
+if possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the necessary
+compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to make this template work automatically.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_reference"></a> is_reference</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a reference pointer type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.2.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not
+support partial-specialization of class templates,
+then this template may report the wrong result for function types,
+and for types that are both const and volatile qualified.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special"> (&amp;)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span> (the argument in this case is
+a reference to a function).</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_union"></a> is_union</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) union type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>. Currently requires some kind of compiler
+support, otherwise unions are identified as classes.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 9.5.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> Without (some as yet unspecified) help from the
+compiler, we cannot distinguish between union and class types using only standard C++,
+as a result this type will never inherit from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>, unless the user explicitly
+specializes the template for their user-defined union types, or unless the compiler
+supplies some unspecified intrinsic that implements this functionality. Currently
+(May 2005) only Visual C++ 8 has the necessary compiler <a href="intrinsics.html" title=" Support for Compiler Intrinsics">intrinsics</a> to make this
+trait "just work" without user intervention.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_union</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_union</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_union</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> void</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_union</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_union</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_union</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_void"></a> is_void</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified) void type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.1p9.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_void</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> void</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.is_volatile"></a> is_volatile</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>-or-<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a></code></em><span class="special"> {};</span></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> If T is a (top level) volatile-qualified type then inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a>,
+otherwise inherits from <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">is_volatile</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_volatile</span><span class="special">&lt;</span><span class="keyword">volatile</span><span class="keyword"> int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_volatile</span><span class="special">&lt;</span><span class="keyword">const</span><span class="keyword"> volatile</span><span class="keyword"> int</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>true</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> volatile</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>false</em></span>: the volatile qualifier is not
+at the top level in this case.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">is_volatile</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.rank"></a> rank</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code></pre>
+<p><span class="bold"><strong>Inherits:</strong></span> Class template rank inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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></code>,
+where <code class="computeroutput"><span class="identifier">RANK</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> is the number of array dimensions in type <code class="computeroutput"><span class="identifier">T</span></code>.</p>
+<p>
+If <code class="computeroutput"><span class="identifier">T</span></code> is not an array type, then <code class="computeroutput"><span class="identifier">RANK</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> is zero.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">rank</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+<p><span class="bold"><strong>Examples:</strong></span></p>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[]&gt;</span></code> inherits from <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="number"> 1</span><span class="special">&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">[</span><span class="number">2</span><span class="special">][</span><span class="number">3</span><span class="special">][</span><span class="number">4</span><span class="special">]&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">integral_constant</a><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="number"> 3</span><span class="special">&gt;</span></code>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">1</span><span class="special">]&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>1</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[][</span><span class="number">2</span><span class="special">]&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>2</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is an integral constant
+expression that evaluates to <span class="emphasis"><em>0</em></span>.</p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p><code class="computeroutput"><span class="identifier">rank</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>.</p></blockquote></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_all_extents"></a> remove_all_extents</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> If <code class="computeroutput"><span class="identifier">T</span></code> is an array type, then removes all of the array bounds on <code class="computeroutput"><span class="identifier">T</span></code>, otherwise
+leaves <code class="computeroutput"><span class="identifier">T</span></code> unchanged.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.4.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_all_extents</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1639130"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_all_extents</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_all_extents</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">[</span><span class="number">2</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_all_extents</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[][</span><span class="number">2</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_all_extents</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">2</span><span class="special">][</span><span class="number">3</span><span class="special">][</span><span class="number">4</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_all_extents</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_const"></a> remove_const</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span></code>, but with any <span class="emphasis"><em>top level</em></span> const-qualifier removed.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_const</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1639627"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> volatile</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_cv"></a> remove_cv</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span></code>, but with any <span class="emphasis"><em>top level</em></span> cv-qualifiers removed.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_cv</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1640102"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_extent"></a> remove_extent</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> If <code class="computeroutput"><span class="identifier">T</span></code> is an array type, then removes the topmost array bound,
+otherwise leaves <code class="computeroutput"><span class="identifier">T</span></code> unchanged.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.4.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_extent</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1640579"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">[</span><span class="number">2</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><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">2</span><span class="special">][</span><span class="number">4</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></code></td>
+</tr>
+<tr>
+<td><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">2</span><span class="special">]&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">[</span><span class="number">2</span><span class="special">]</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_pointer"></a> remove_pointer</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span></code>, but with any pointer modifier removed.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.1.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1641088"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">**&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_reference"></a> remove_reference</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span></code>, but with any reference modifier removed.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.2.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1641548"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.remove_volatile"></a> remove_volatile</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><span 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">T</span></code>, but with any <span class="emphasis"><em>top level</em></span> volatile-qualifier removed.</p>
+<p><span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.</p>
+<p><span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code> will always be the same as
+type <code class="computeroutput"><span class="identifier">T</span></code> except where <a href="category.html#transform.broken_compiler_workarounds_">compiler workarounds</a> have been applied.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">remove_volatile</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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="informaltable">
+<h4>
+<a name="id1641963"></a><span class="table-title">Examples</span>
+</h4>
+<table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Result Type</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> const</span><span class="keyword"> volatile</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">&amp;</span></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><span class="identifier">remove_volatile</span><span class="special">&lt;</span><span class="keyword">int</span><span class="keyword"> volatile</span><span class="special">*&gt;::</span><span class="identifier">type</span></code></td>
+<td><code class="computeroutput"><span class="keyword">int</span><span class="keyword"> const</span><span class="special">*</span></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_typetraits.type_with_alignment"></a> type_with_alignment</h4></div></div></div>
+<pre class="programlisting"><code class="literal"><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"> 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><span class="special">
+};</span></code></pre>
+<p><span class="bold"><strong>type:</strong></span> a built-in or POD type with size <code class="computeroutput"><span class="identifier">Size</span></code> and an alignment
+that is a multiple of <code class="computeroutput"><span class="identifier">Align</span></code>.</p>
+<p><span class="bold"><strong>Header:</strong></span><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">type_with_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> 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>
+</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, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></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="../boost_typetraits.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="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boost_typetraits/user_defined.html b/doc/html/boost_typetraits/user_defined.html
new file mode 100644
index 0000000000..f0a0353141
--- /dev/null
+++ b/doc/html/boost_typetraits/user_defined.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> User Defined Specializations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+<link rel="prev" href="category.html" title=" Type Traits by Category">
+<link rel="next" href="intrinsics.html" title=" Support for Compiler Intrinsics">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="category.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="intrinsics.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_typetraits.user_defined"></a> User Defined Specializations</h3></div></div></div>
+<p>
+Occationally the end user may need to provide their own specialization
+for one of the type traits - typically where intrinsic compiler support
+is required to implement a specific trait fully.
+These specializations should derive from boost::<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a> or boost::<a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a>
+as appropriate:</p>
+<pre class="programlisting"><code class="literal"><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><span class="keyword">
+
+struct</span><span class="identifier"> my_pod</span><span class="special">{};</span><span class="keyword">
+struct</span><span class="identifier"> my_union</span><span class="special">
+{</span><span class="keyword">
+ char</span><span class="identifier"> c</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">
+
+namespace</span><span class="identifier"> boost</span><span class="special">
+{</span><span class="keyword">
+ template</span><span class="special">&lt;&gt;</span><span class="keyword">
+ struct</span> <a href="reference.html#boost_typetraits.is_pod" title=" is_pod">is_pod</a><span class="special">&lt;</span><span class="identifier">my_pod</span><span class="special">&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">{};</span><span class="keyword">
+
+ template</span><span class="special">&lt;&gt;</span><span class="keyword">
+ struct</span> <a href="reference.html#boost_typetraits.is_pod" title=" is_pod">is_pod</a><span class="special">&lt;</span><span class="identifier">my_union</span><span class="special">&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">{};</span><span class="keyword">
+
+ template</span><span class="special">&lt;&gt;</span><span class="keyword">
+ struct</span> <a href="reference.html#boost_typetraits.is_union" title=" is_union">is_union</a><span class="special">&lt;</span><span class="identifier">my_union</span><span class="special">&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">true_type</a><span class="special">{};</span><span class="keyword">
+
+ template</span><span class="special">&lt;&gt;</span><span class="keyword">
+ struct</span> <a href="reference.html#boost_typetraits.is_class" title=" is_class">is_class</a><span class="special">&lt;</span><span class="identifier">my_union</span><span class="special">&gt;</span><span class="special"> :</span><span class="keyword"> public</span> <a href="reference.html#boost_typetraits.integral_constant" title=" integral_constant">false_type</a><span class="special">{};</span><span class="special">
+}</span></code></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"><small>Copyright © 2000, 2005 Adobe Systems Inc, David Abrahams, Steve Cleary,
+ Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus,
+ Itay Maman, John Maddock, Thorsten Ottosen, Robert Ramey and Jeremy Siek</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="category.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_typetraits.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="intrinsics.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook.html b/doc/html/boostbook.html
index 9ed43b9278..3790bbc188 100644
--- a/doc/html/boostbook.html
+++ b/doc/html/boostbook.html
@@ -1,10 +1,78 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boostbook.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boostbook.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boostbook.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Part II. The BoostBook Documentation Format</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="index.html" title="The Boost C++ Libraries">
+<link rel="prev" href="variant/refs.html" title="References">
+<link rel="next" href="boostbook/introduction.html" title="Chapter 16. Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variant/refs.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="boostbook/introduction.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="part" lang="en">
+<div class="titlepage"><div>
+<div><h1 class="title">
+<a name="boostbook"></a>The BoostBook Documentation Format</h1></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Douglas</span> <span class="surname">Gregor</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2003-2005 Douglas Gregor</p></div>
+<div><div class="legalnotice">
+<a name="id1672305"></a><p>Permission to copy, use, sell and distribute this software
+ is granted provided this copyright notice appears in all copies.
+ Permission to modify the code and to distribute modified code is
+ granted provided this copyright notice appears in all copies,
+ and a notice that the code was modified is included with the
+ copyright notice. </p>
+<p> This software is provided "as is" without express or
+ implied warranty, and with no claim as to its suitability for
+ any purpose. </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="chapter"><a href="boostbook/introduction.html">16. Introduction</a></span></dt>
+<dt><span class="chapter"><a href="boostbook/getting/started.html">17. Getting Started</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boostbook/getting/started.html#boostbook.setup.autounix">Automatic setup for Unix-like systems</a></span></dt>
+<dt><span class="section"><a href="boostbook/setup/manual.html">Manual setup for all systems</a></span></dt>
+<dt><span class="section"><a href="boostbook/setup/running.html">Running BoostBook</a></span></dt>
+<dt><span class="section"><a href="boostbook/setup/troubleshooting.html">Troubleshooting</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="boostbook/documenting.html">18. Documenting libraries</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boostbook/documenting.html#boostbook.defining">Defining a BoostBook library</a></span></dt>
+<dt><span class="section"><a href="boostbook/documenting/s02.html">From HTML to BoostBook</a></span></dt>
+<dt><span class="section"><a href="boostbook/sectioning.html">Sectioning in BoostBook</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="boostbook/together.html">19. Bringing Together a BoostBook Document</a></span></dt>
+<dd><dl><dt><span class="section"><a href="boostbook/together.html#boostbook.linking">Linking in BoostBook</a></span></dt></dl></dd>
+<dt><span class="chapter"><a href="reference.html">20. Reference</a></span></dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: January 24, 2005 at 02:13:05 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variant/refs.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="boostbook/introduction.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/boostbook/documenting.html b/doc/html/boostbook/documenting.html
new file mode 100644
index 0000000000..d5f95e312d
--- /dev/null
+++ b/doc/html/boostbook/documenting.html
@@ -0,0 +1,135 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 18. Documenting libraries</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="prev" href="setup/troubleshooting.html" title="Troubleshooting">
+<link rel="next" href="documenting/s02.html" title="From HTML to BoostBook">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="setup/troubleshooting.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="documenting/s02.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="boostbook.documenting"></a>Chapter 18. Documenting libraries</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="documenting.html#boostbook.defining">Defining a BoostBook library</a></span></dt>
+<dt><span class="section"><a href="documenting/s02.html">From HTML to BoostBook</a></span></dt>
+<dt><span class="section"><a href="sectioning.html">Sectioning in BoostBook</a></span></dt>
+</dl>
+</div>
+<p>BoostBook is an extension to <a href="http://www.docbook.org" target="_top">DocBook</a>, an XML format for
+ representing documentation. BoostBook inherits much of its
+ functionality and many elements from DocBook that are not
+ redocumented here. When writing BoostBook documentation, please
+ refer also to <a href="http://docbook.org/tdg/en/index.html" target="_top">DocBook: The Definitive
+ Guide</a>.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.defining"></a>Defining a BoostBook library</h2></div></div></div>
+<p>BoostBook library documentation is contained entirely within
+ a &lt;library&gt; XML element. To create a skeletal library, we
+ need to create a new XML document (call it <code class="computeroutput">any.xml</code>)
+ that contains basic information about the library. The following
+ <a href="documenting.html#boostbook.documenting.skeletal" title="Example 18.1. A Skeletal BoostBook Library">BoostBook XML
+ example</a> describes basic information about the <a href="http://www.boost.org/libs/any/index.html" target="_top">Boost.Any</a>
+ library:</p>
+<div class="example">
+<a name="boostbook.documenting.skeletal"></a><p class="title"><b>Example 18.1. A Skeletal BoostBook Library</b></p>
+<pre class="programlisting">
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+ "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"&gt;
+&lt;library name="Any" dirname="any" xmlns:xi="http://www.w3.org/2001/XInclude"
+ id="any" last-revision="$Date$"&gt;
+ &lt;libraryinfo&gt;
+ &lt;author&gt;
+ &lt;firstname&gt;Kevlin&lt;/firstname&gt;
+ &lt;surname&gt;Henney&lt;/surname&gt;
+ &lt;/author&gt;
+ &lt;librarypurpose&gt;
+ Safe, generic container for single values of different value types
+ &lt;/librarypurpose&gt;
+ &lt;librarycategory name="category:data-structures"/&gt;
+ &lt;/libraryinfo&gt;
+&lt;/library&gt;
+</pre>
+</div>
+<p>The first three lines identify this document as a BoostBook
+ <a href="http://www.w3.org/XML/" target="_top">XML</a> document. The
+ DOCTYPE line states that the document conforms to the BoostBook
+ DTD, and that the top-level element is a BoostBook
+ &lt;library&gt;.</p>
+<p>The &lt;library&gt; element actually describes the aspects
+ of BoostBook library documentation. The attributes for the
+ &lt;library&gt; element are:</p>
+<div class="variablelist">
+<p class="title"><b>Attributes for the &lt;library&gt; element</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput">name</code></span></dt>
+<dd>The full name of the library, e.g., "Any"</dd>
+<dt><span class="term"><code class="computeroutput">dirname</code></span></dt>
+<dd>The name of the directory, relative to
+ <code class="computeroutput">boost/libs</code>, in which the library
+ resides. This name may be a relative path, such as
+ <code class="computeroutput">math/octonion</code>, using "/" for the directory
+ separator.</dd>
+<dt><span class="term"><code class="computeroutput">id</code></span></dt>
+<dd>A short, unique name for the library. For libraries
+ with simple directory names (e.g., ones that do not contain
+ a "/"), this should be the same as the
+ <code class="computeroutput">dirname</code>. This <code class="computeroutput">id</code> will be used to
+ identify libraries and, for HTML output, will be used as the
+ base name for the HTML file in which the library's
+ documentation resides, so it should use only lowercase
+ alphanumeric characters and underscores.</dd>
+<dt><span class="term"><code class="computeroutput">last-revision</code></span></dt>
+<dd>Always set to <code class="computeroutput">$Date$</code>, which is
+ expanded by CVS to include the date and time that the file
+ was last modified.</dd>
+</dl>
+</div>
+<p>Inside the &lt;library&gt; element we have the
+ &lt;libraryinfo&gt; element, which gives information about the
+ library itself. It contains the author's name (there may be more
+ than one &lt;author&gt; element), followed by the purpose of the
+ library and the list of categorizations. The
+ &lt;librarypurpose&gt; element should always contain a very short
+ (single sentence) description of the library's purpose, and should
+ <span class="emphasis"><em>not</em></span> terminate with a period.</p>
+<p>The list of categories is specified by a set of
+ &lt;librarycategory&gt; elements. Each &lt;librarycategory&gt;
+ element has a <code class="computeroutput">name</code> element that identifies one of the
+ categories. The actual list of categories is in the file
+ <code class="filename">doc/src/boost.xml</code>.
+ </p>
+<p>At this point, we can apply the BoostBook XSL stylesheets to
+ <code class="computeroutput">any.xml</code> (to DocBook) followed by a DocBook XSL
+ stylesheet to generate HTML output, as described in <a href="getting/started.html" title="Chapter 17. Getting Started">Chapter 17, <i>Getting Started</i></a>.</p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="setup/troubleshooting.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="documenting/s02.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/documenting/s02.html b/doc/html/boostbook/documenting/s02.html
new file mode 100644
index 0000000000..489d490fdd
--- /dev/null
+++ b/doc/html/boostbook/documenting/s02.html
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>From HTML to BoostBook</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../documenting.html" title="Chapter 18. Documenting libraries">
+<link rel="prev" href="../documenting.html" title="Chapter 18. Documenting libraries">
+<link rel="next" href="../sectioning.html" title="Sectioning in BoostBook">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../documenting.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../documenting.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="../sectioning.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1673397"></a>From HTML to BoostBook</h2></div></div></div>
+<p>Most library authors are comfortable with writing HTML
+ documentation. Writing <a href="http://www.docbook.org" target="_top">DocBook</a> documentation (and,
+ by extension, BoostBook documentation) is quite similar to writing
+ HTML, except that BoostBook uses different element names from HTML
+ (see <a href="s02.html#html.to.boostbook" title="Table 18.1. Converting HTML elements to BoostBook">Table 18.1, &#8220;Converting HTML elements to BoostBook&#8221;</a>) and BoostBook XML is a
+ much more rigid format than HTML.</p>
+<p>One of the easiest ways to convert HTML documentation into
+ BoostBook documentation is to use <a href="http://tidy.sourceforge.net/" target="_top">HTML Tidy</a> to transform
+ your HTML into valid XHTML, which will make sure that all elements
+ are properly closed, then apply the transformations in <a href="s02.html#html.to.boostbook" title="Table 18.1. Converting HTML elements to BoostBook">Table 18.1, &#8220;Converting HTML elements to BoostBook&#8221;</a> to the body of the XHTML
+ document. The following command uses HTML Tidy to transform HTML
+ into valid XHTML:</p>
+<pre class="programlisting">
+ tidy -asxhtml input.html &gt; output.xhtml</pre>
+<p>When converting documentation from HTML to BoostBook, note
+ that some redundant information that has to be manually maintained
+ in HTML is automatically generated in BoostBook: for instance, the
+ library categorizations, purpose, and author list described in
+ <a href="../documenting.html#boostbook.defining" title="Defining a BoostBook library">the section called &#8220;Defining a BoostBook library&#8221;</a> are used both in the
+ documentation for the library and to build alphabetical and
+ categorized lists of known libraries; similarly, tables of
+ contents are built automatically from the titles of sections in
+ the BoostBook document.</p>
+<div class="table">
+<a name="html.to.boostbook"></a><p class="title"><b>Table 18.1. Converting HTML elements to BoostBook</b></p>
+<table class="table" summary="Converting HTML elements to BoostBook">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">HTML</th>
+<th align="left">BoostBook</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><p>&lt;h1&gt;, &lt;h2&gt;, etc.</p></td>
+<td align="left"><p>&lt;section&gt;, &lt;title&gt;; See <a href="../sectioning.html" title="Sectioning in BoostBook">the section called &#8220;Sectioning in BoostBook&#8221;</a></p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;i&gt;, &lt;em&gt;</p></td>
+<td align="left"><p>&lt;emphasis&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;b&gt;</p></td>
+<td align="left"><p>&lt;emphasis role="bold"&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;ol&gt;</p></td>
+<td align="left"><p>&lt;orderedlist&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;ul&gt;</p></td>
+<td align="left"><p>&lt;itemizedlist&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;li&gt;</p></td>
+<td align="left"><p>&lt;listitem&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;pre&gt;</p></td>
+<td align="left"><p>&lt;programlisting&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;code&gt;</p></td>
+<td align="left"><p>&lt;computeroutput&gt;,&lt;code&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;p&gt;</p></td>
+<td align="left"><p>&lt;para&gt;, &lt;simpara&gt;</p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;a&gt;</p></td>
+<td align="left"><p>&lt;xref&gt;, &lt;link&gt;, &lt;ulink&gt;;, See <a href="../together.html#boostbook.linking" title="Linking in BoostBook">the section called &#8220;Linking in BoostBook&#8221;</a></p></td>
+</tr>
+<tr>
+<td align="left"><p>&lt;table&gt;, &lt;tr&gt;, &lt;th&gt;, &lt;td&gt;</p></td>
+<td align="left"><p>&lt;table&gt;, &lt;informaltable&gt;, &lt;tgroup&gt;, &lt;thead&gt;, &lt;tfoot&gt;, &lt;tbody&gt;, &lt;row&gt;, &lt;entry&gt;, &lt;entrytbl&gt;; BoostBook tables are equivalent to DocBook tables, for which there is a good <a href="http://opensource.bureau-cornavin.com/crash-course/tables.html" target="_top">tutorial here</a></p></td>
+</tr>
+</tbody>
+</table>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../documenting.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../documenting.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="../sectioning.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/boostbook.html b/doc/html/boostbook/dtd/boostbook.html
new file mode 100644
index 0000000000..2fe0dadbc5
--- /dev/null
+++ b/doc/html/boostbook/dtd/boostbook.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element boostbook</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="library-reference.html" title="
+ BoostBook element library-reference">
+<link rel="next" href="union.html" title="
+ BoostBook element union">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="library-reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="union.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.boostbook"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">boostbook</code></span></h2>
+<p>boostbook &#8212; Defines a BoostBook book</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">boostbook ::=
+ (title, (chapter| <a href="library.html" title="
+ BoostBook element library">library</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1676330"></a><h2>Description</h2>
+<p>This element is the topmost level defined by
+ <code class="filename">boost.xml</code> for all Boost documentation. It will
+ not generally be used by developers.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1676343"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="library-reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="union.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/class-specialization.html b/doc/html/boostbook/dtd/class-specialization.html
new file mode 100644
index 0000000000..429917b9c4
--- /dev/null
+++ b/doc/html/boostbook/dtd/class-specialization.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element class-specialization</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="next" href="link-test.html" title="
+ BoostBook element link-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="link-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.class-specialization"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">class-specialization</code></span></h2>
+<p>class-specialization &#8212; A specialization (partial or full) of a class template</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">class-specialization ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="specialization.html" title="
+ BoostBook element specialization">specialization</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>?, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675056"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="link-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/class.html b/doc/html/boostbook/dtd/class.html
new file mode 100644
index 0000000000..191720990c
--- /dev/null
+++ b/doc/html/boostbook/dtd/class.html
@@ -0,0 +1,156 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element class</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="overloaded-function.html" title="
+ BoostBook element overloaded-function">
+<link rel="next" href="librarycategorydef.html" title="
+ BoostBook element librarycategorydef">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overloaded-function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategorydef.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.class"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">class</code></span></h2>
+<p>class &#8212; Declares a class or class template</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">class ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698397"></a><h2>Description</h2>
+<p>C++ classes and class templates are described via the
+ &lt;class&gt; element. Each class has a name (e.g., "any") given by
+ the <code class="computeroutput">name</code> attribute, a purpose given by the
+ &lt;purpose&gt; element, documentation, and a set of types,
+ functions, base classes, and data members. Here is a minimal
+ definition of the <code class="computeroutput"><a href="../../boost/any.html" title="Class any">boost::any</a></code> class:</p>
+<pre class="programlisting">&lt;namespace name="boost"&gt;
+ &lt;class name="any"&gt;
+ &lt;purpose&gt;
+ A class whose instances can hold instances of any type that satisfies
+ ValueType requirements.
+ &lt;/purpose&gt;
+ &lt;/class&gt;
+&lt;/namespace&gt;</pre>
+<p>Additional class documentation can be contained in a
+ <code class="sgmltag-element">description</code> element following the &lt;purpose&gt;
+ element. This documentation will be typeset prior to documentation
+ for specific elements in the class (e.g., constructors or
+ methods).</p>
+<p>Class inheritance is described via the &lt;inherit&gt;
+ element. The &lt;inherit&gt; element requires an <code class="computeroutput">access</code>
+ attribute which must be one of <span class="emphasis"><em>public</em></span>,
+ <span class="emphasis"><em>protected</em></span>, or <span class="emphasis"><em>private</em></span>. The
+ content of the &lt;inherited&gt; element in C++ code that names the
+ class inherited, and may contain markup to link to the class. The
+ following description of the class
+ <code class="computeroutput"><a href="../../bad_any_cast.html" title="Class bad_any_cast">boost::bad_any_cast</a></code> describes public
+ inheritance from the class <code class="computeroutput">std::bad_cast</code>. It
+ also defines the &lt;purpose&gt; element, which contains a short
+ description of the use of the class.</p>
+<pre class="programlisting">&lt;class name="bad_any_cast"&gt;
+ &lt;inherit access="public"&gt;&lt;classname&gt;std::bad_cast&lt;/classname&gt;&lt;/inherit&gt;
+ &lt;purpose&gt;&lt;para&gt;The exception thrown in the event of a failed
+ &lt;functionname&gt;any_cast&lt;/functionname&gt; of an
+ &lt;classname&gt;any&lt;/classname&gt; value.&lt;/para&gt;&lt;/purpose&gt;
+&lt;/class&gt;</pre>
+<p>Class templates are defined by &lt;class&gt; elements with a
+ &lt;template&gt; child element at the beginning.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1698524"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overloaded-function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategorydef.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/code.html b/doc/html/boostbook/dtd/code.html
new file mode 100644
index 0000000000..1a0359f787
--- /dev/null
+++ b/doc/html/boostbook/dtd/code.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element code</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="static-constant.html" title="
+ BoostBook element static-constant">
+<link rel="next" href="destructor.html" title="
+ BoostBook element destructor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static-constant.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="destructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.code"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">code</code></span></h2>
+<p>code &#8212; Mimics the <code class="sgmltag-element">code</code> tag in HTML</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">code ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675584"></a><h2>Description</h2>
+<p>Text within a <code class="sgmltag-element">code</code> tag is generally typeset
+ in a different, monospaced font so that it stands out as code. The
+ <code class="sgmltag-element">code</code> tag in BoostBook is transformed directly
+ into the <code class="sgmltag-element">computeroutput</code> tag in DocBook.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1675603"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static-constant.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="destructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/compile-fail-test.html b/doc/html/boostbook/dtd/compile-fail-test.html
new file mode 100644
index 0000000000..7df22301d5
--- /dev/null
+++ b/doc/html/boostbook/dtd/compile-fail-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element compile-fail-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="template.html" title="
+ BoostBook element template">
+<link rel="next" href="returns.html" title="
+ BoostBook element returns">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="returns.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.compile-fail-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">compile-fail-test</code></span></h2>
+<p>compile-fail-test &#8212; A testcase that should fail to compile</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">compile-fail-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697619"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="returns.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/compile-test.html b/doc/html/boostbook/dtd/compile-test.html
new file mode 100644
index 0000000000..2b4a474a21
--- /dev/null
+++ b/doc/html/boostbook/dtd/compile-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element compile-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="postconditions.html" title="
+ BoostBook element postconditions">
+<link rel="next" href="method.html" title="
+ BoostBook element method">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="postconditions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="method.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.compile-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">compile-test</code></span></h2>
+<p>compile-test &#8212; A testcase that should compile correctly</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">compile-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1677279"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="postconditions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="method.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/complexity.html b/doc/html/boostbook/dtd/complexity.html
new file mode 100644
index 0000000000..60b8b473db
--- /dev/null
+++ b/doc/html/boostbook/dtd/complexity.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element complexity</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="programlisting.html" title="
+ BoostBook element programlisting">
+<link rel="next" href="purpose.html" title="
+ BoostBook element purpose">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="programlisting.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="purpose.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.complexity"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">complexity</code></span></h2>
+<p>complexity &#8212; The time/space/etc. complexity of a function</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">complexity ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699132"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="programlisting.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="purpose.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/constructor.html b/doc/html/boostbook/dtd/constructor.html
new file mode 100644
index 0000000000..5e7fb5d504
--- /dev/null
+++ b/doc/html/boostbook/dtd/constructor.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element constructor</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="snippet.html" title="
+ BoostBook element snippet">
+<link rel="next" href="namespace.html" title="
+ BoostBook element namespace">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="snippet.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="namespace.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.constructor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">constructor</code></span></h2>
+<p>constructor &#8212; Declares a constructor of the enclosing class</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">constructor ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="parameter.html" title="
+ BoostBook element parameter">parameter</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1677714"></a><h2>Description</h2>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1695206"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="snippet.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="namespace.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/copy-assignment.html b/doc/html/boostbook/dtd/copy-assignment.html
new file mode 100644
index 0000000000..bf8a724aa1
--- /dev/null
+++ b/doc/html/boostbook/dtd/copy-assignment.html
@@ -0,0 +1,121 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element copy-assignment</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="librarypurpose.html" title="
+ BoostBook element librarypurpose">
+<link rel="next" href="run-fail-test.html" title="
+ BoostBook element run-fail-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarypurpose.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="run-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.copy-assignment"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">copy-assignment</code></span></h2>
+<p>copy-assignment &#8212; Declares a copy-assignment operator</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">copy-assignment ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="type.html" title="
+ BoostBook element type">type</a>?, <a href="parameter.html" title="
+ BoostBook element parameter">parameter</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697259"></a><h2>Description</h2>
+<p>The return type of the copy-assignment operator does not need
+ to be specified. If left unspecified, it will default to an
+ unqualified reference to the enclosing class type.</p>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1697280"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>cv</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>cv-qualifiers for this method, e.g., const volatile</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarypurpose.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="run-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/data-member.html b/doc/html/boostbook/dtd/data-member.html
new file mode 100644
index 0000000000..5db84ed83c
--- /dev/null
+++ b/doc/html/boostbook/dtd/data-member.html
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element data-member</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="notes.html" title="
+ BoostBook element notes">
+<link rel="next" href="specialization.html" title="
+ BoostBook element specialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="notes.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.data-member"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">data-member</code></span></h2>
+<p>data-member &#8212; Declares a data member of a class</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">data-member ::=
+ (<a href="type.html" title="
+ BoostBook element type">type</a>, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1695943"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="notes.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/default.html b/doc/html/boostbook/dtd/default.html
new file mode 100644
index 0000000000..f5739a3e2f
--- /dev/null
+++ b/doc/html/boostbook/dtd/default.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element default</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="returns.html" title="
+ BoostBook element returns">
+<link rel="next" href="parameter.html" title="
+ BoostBook element parameter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="returns.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.default"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">default</code></span></h2>
+<p>default &#8212; The default value of a function or template parameter</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">default ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697762"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="returns.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/description.html b/doc/html/boostbook/dtd/description.html
new file mode 100644
index 0000000000..64b602ea1a
--- /dev/null
+++ b/doc/html/boostbook/dtd/description.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element description</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="template-type-parameter.html" title="
+ BoostBook element template-type-parameter">
+<link rel="next" href="librarylist.html" title="
+ BoostBook element librarylist">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-type-parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarylist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.description"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">description</code></span></h2>
+<p>description &#8212; Detailed description of a construct</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">description ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675962"></a><h2>Description</h2>
+<p>Although the context model for this element is
+ <code class="computeroutput">ANY</code>, detailed descriptions should contain structured
+ DocBook elements that occur within sections, e.g., paragraphs
+ (<code class="sgmltag-element">para</code>, <code class="sgmltag-element">simpara</code>), lists
+ (<code class="sgmltag-element">orderedlist</code>, <code class="sgmltag-element">itemizedlist</code>),
+ tables (<code class="sgmltag-element">informaltable</code>, <code class="sgmltag-element">table</code>),
+ etc.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1675998"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-type-parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarylist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/destructor.html b/doc/html/boostbook/dtd/destructor.html
new file mode 100644
index 0000000000..4e5a255f96
--- /dev/null
+++ b/doc/html/boostbook/dtd/destructor.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element destructor</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="code.html" title="
+ BoostBook element code">
+<link rel="next" href="template-type-parameter.html" title="
+ BoostBook element template-type-parameter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="code.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-type-parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.destructor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">destructor</code></span></h2>
+<p>destructor &#8212; Declares a destructor for the enclosing class</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">destructor ::=
+ (<a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675753"></a><h2>Description</h2>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1675768"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="code.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-type-parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/effects.html b/doc/html/boostbook/dtd/effects.html
new file mode 100644
index 0000000000..863a51f8b8
--- /dev/null
+++ b/doc/html/boostbook/dtd/effects.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element effects</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="requires.html" title="
+ BoostBook element requires">
+<link rel="next" href="libraryname.html" title="
+ BoostBook element libraryname">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="requires.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="libraryname.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.effects"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">effects</code></span></h2>
+<p>effects &#8212; Declares the side effects of a function</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">effects ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700468"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="requires.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="libraryname.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/enum.html b/doc/html/boostbook/dtd/enum.html
new file mode 100644
index 0000000000..d6e0199aa5
--- /dev/null
+++ b/doc/html/boostbook/dtd/enum.html
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element enum</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="lib.html" title="
+ BoostBook element lib">
+<link rel="next" href="requires.html" title="
+ BoostBook element requires">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lib.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="requires.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.enum"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">enum</code></span></h2>
+<p>enum &#8212; Declares an enumeration type</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">enum ::=
+ (<a href="enumvalue.html" title="
+ BoostBook element enumvalue">enumvalue</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700302"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lib.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="requires.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/enumvalue.html b/doc/html/boostbook/dtd/enumvalue.html
new file mode 100644
index 0000000000..84481c9bf3
--- /dev/null
+++ b/doc/html/boostbook/dtd/enumvalue.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element enumvalue</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="type.html" title="
+ BoostBook element type">
+<link rel="next" href="overloaded-method.html" title="
+ BoostBook element overloaded-method">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="type.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="overloaded-method.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.enumvalue"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">enumvalue</code></span></h2>
+<p>enumvalue &#8212; A single value of an enumeration</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">enumvalue ::=
+ (<a href="default.html" title="
+ BoostBook element default">default</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698805"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="type.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="overloaded-method.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/free-function-group.html b/doc/html/boostbook/dtd/free-function-group.html
new file mode 100644
index 0000000000..6456f21c27
--- /dev/null
+++ b/doc/html/boostbook/dtd/free-function-group.html
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element free-function-group</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="if-fails.html" title="
+ BoostBook element if-fails">
+<link rel="next" href="functionname.html" title="
+ BoostBook element functionname">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="if-fails.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="functionname.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.free-function-group"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">free-function-group</code></span></h2>
+<p>free-function-group &#8212; A set of functions that are grouped together under one name</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">free-function-group ::=
+ (<a href="function.html" title="
+ BoostBook element function">function</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1695563"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="if-fails.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="functionname.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/function.html b/doc/html/boostbook/dtd/function.html
new file mode 100644
index 0000000000..420734d533
--- /dev/null
+++ b/doc/html/boostbook/dtd/function.html
@@ -0,0 +1,165 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="source.html" title="
+ BoostBook element source">
+<link rel="next" href="postconditions.html" title="
+ BoostBook element postconditions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="source.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="postconditions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.function"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">function</code></span></h2>
+<p>function &#8212; Declares a function</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">function ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="type.html" title="
+ BoostBook element type">type</a>, <a href="parameter.html" title="
+ BoostBook element parameter">parameter</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1677021"></a><h2>Description</h2>
+<p>BoostBook functions are documented by specifying the
+ function's interface (e.g., its C++ signature) and its
+ behavior. Constructors, destructors, member functions, and free
+ functions all use the same documentation method, although the
+ top-level tags differ.</p>
+<p>The behavior of functions in BoostBook is documenting using a
+ style similar to that of the C++ standard, with clauses describing
+ the requirements, effects, postconditions, exception behavior, and
+ return values of functions.</p>
+<p>The following example illustrates some constructors and a
+ destructor for <code class="computeroutput"><a href="../../boost/any.html" title="Class any">boost::any</a></code>. Note that one of
+ the constructors takes a single parameter whose name is "other" and
+ whose type, <code class="computeroutput">const any&amp;</code> is contained in the
+ &lt;paramtype&gt; element; any number of parameters may be specified
+ in this way.</p>
+<pre class="programlisting">&lt;class name="any"&gt;
+ &lt;constructor&gt;
+ &lt;postconditions&gt;&lt;para&gt;&lt;this-&gt;empty()&gt;&lt;/para&gt;&lt;/postconditions&gt;
+ &lt;/constructor&gt;
+
+ &lt;constructor&gt;
+ &lt;parameter name="other"&gt;
+ &lt;paramtype&gt;const &lt;classname&gt;any&lt;/classname&gt;&amp;amp;&lt;/paramtype&gt;
+ &lt;/parameter&gt;
+
+ &lt;effects&gt;
+ &lt;simpara&gt; Copy constructor that copies
+ content of &lt;code&gt;other&lt;/code&gt; into the new instance,
+ so that any content is equivalent in both type and value to the
+ content of &lt;code&gt;other&lt;/code&gt;, or empty if
+ &lt;code&gt;other&lt;/code&gt; is
+ empty.
+ &lt;/simpara&gt;
+ &lt;/effects&gt;
+
+ &lt;throws&gt;
+ &lt;simpara&gt;May fail with a
+ &lt;classname&gt;std::bad_alloc&lt;/classname&gt; exception or any
+ exceptions arising from the copy constructor of the
+ contained type.
+ &lt;/simpara&gt;
+ &lt;/throws&gt;
+ &lt;/constructor&gt;
+
+ &lt;destructor&gt;
+ &lt;effects&gt;&lt;simpara&gt;Releases any and all resources used in
+ management of instance.&lt;/simpara&gt;&lt;/effects&gt;
+
+ &lt;throws&gt;&lt;simpara&gt;Nothing.&lt;/simpara&gt;&lt;/throws&gt;
+ &lt;/destructor&gt;
+&lt;/class&gt;</pre>
+</div>
+<div class="refsection" lang="en">
+<a name="id1677067"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="source.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="postconditions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/functionname.html b/doc/html/boostbook/dtd/functionname.html
new file mode 100644
index 0000000000..a00924b5c0
--- /dev/null
+++ b/doc/html/boostbook/dtd/functionname.html
@@ -0,0 +1,97 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element functionname</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="free-function-group.html" title="
+ BoostBook element free-function-group">
+<link rel="next" href="librarycategory.html" title="
+ BoostBook element librarycategory">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="free-function-group.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategory.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.functionname"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">functionname</code></span></h2>
+<p>functionname &#8212; References a function with the given name</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">functionname ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1695650"></a><h2>Description</h2>
+<p>If a function (or overloaded function) with the given,
+ possibly-qualified name is found, this generates a link to that
+ function. Lookups obey currently-active <a href="using-class.html" title="
+ BoostBook element using-class"><code class="sgmltag-element">using-class</code></a>
+ and <a href="using-namespace.html" title="
+ BoostBook element using-namespace"><code class="sgmltag-element">using-namespace</code></a>
+ directives to aid in the search, along with searching within the
+ current scope.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1695678"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="free-function-group.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategory.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/header.html b/doc/html/boostbook/dtd/header.html
new file mode 100644
index 0000000000..88be079dbc
--- /dev/null
+++ b/doc/html/boostbook/dtd/header.html
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element header</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="testsuite.html" title="
+ BoostBook element testsuite">
+<link rel="next" href="rationale.html" title="
+ BoostBook element rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="testsuite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.header"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">header</code></span></h2>
+<p>header &#8212; Declares a C++ header with the given name</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">header ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700835"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="testsuite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/if-fails.html b/doc/html/boostbook/dtd/if-fails.html
new file mode 100644
index 0000000000..57f8c1ded8
--- /dev/null
+++ b/doc/html/boostbook/dtd/if-fails.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element if-fails</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="namespace.html" title="
+ BoostBook element namespace">
+<link rel="next" href="free-function-group.html" title="
+ BoostBook element free-function-group">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="namespace.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="free-function-group.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.if-fails"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">if-fails</code></span></h2>
+<p>if-fails &#8212; What it means when a testcase fails</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">if-fails ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1695512"></a><h2>Description</h2>
+<p>
+ Describes to the user the effect a certain failing testcase will
+ have on the usefulness of a library. This field is useful in cases
+ where a failed testcase does not mean that the library won't be
+ useful, but may mean that certain library features will not be
+ available.
+ </p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="namespace.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="free-function-group.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/inherit.html b/doc/html/boostbook/dtd/inherit.html
new file mode 100644
index 0000000000..3ab73b8468
--- /dev/null
+++ b/doc/html/boostbook/dtd/inherit.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element inherit</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="union.html" title="
+ BoostBook element union">
+<link rel="next" href="template-varargs.html" title="
+ BoostBook element template-varargs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-varargs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.inherit"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">inherit</code></span></h2>
+<p>inherit &#8212; Declares a base class of the enclosing class or struct</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">inherit ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1676678"></a><h2>Description</h2>
+<p>This element contains the name of the class inherited. The
+ content model is free-form, as the inherited class may be an
+ instantiation of a template and may have markup in it (e.g.,
+ <code class="sgmltag-element">classname</code> tags).</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1676691"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>access</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td> </td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-varargs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/lib.html b/doc/html/boostbook/dtd/lib.html
new file mode 100644
index 0000000000..db116c5526
--- /dev/null
+++ b/doc/html/boostbook/dtd/lib.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element lib</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="struct.html" title="
+ BoostBook element struct">
+<link rel="next" href="enum.html" title="
+ BoostBook element enum">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="struct.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="enum.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.lib"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">lib</code></span></h2>
+<p>lib &#8212; A library dependency</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">lib ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700251"></a><h2>Description</h2>
+<p>Declares a library dependency on the library named by the content of this element, to be emitted in a Jamfile.</p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="struct.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="enum.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/library-reference.html b/doc/html/boostbook/dtd/library-reference.html
new file mode 100644
index 0000000000..5d797c9df5
--- /dev/null
+++ b/doc/html/boostbook/dtd/library-reference.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element library-reference</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="librarylist.html" title="
+ BoostBook element librarylist">
+<link rel="next" href="boostbook.html" title="
+ BoostBook element boostbook">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarylist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="boostbook.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.library-reference"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">library-reference</code></span></h2>
+<p>library-reference &#8212; Declares the reference material for a library</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">library-reference ::=
+ (title?, section*, (<a href="header.html" title="
+ BoostBook element header">header</a>| <a href="library-reference.html" title="
+ BoostBook element library-reference">library-reference</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1676182"></a><h2>Description</h2>
+<p>Reference documentation for a library is contained with a
+ &lt;library-reference&gt; element. The &lt;library-reference&gt;
+ element has no attributes, and contains as children only
+ &lt;header&gt; elements.</p>
+<p>The &lt;header&gt; element defines a C++ header file. Within
+ each C++ header file lie the definitions of C++ constructs to be
+ documented. The <code class="computeroutput">name</code> attribute of the &lt;header&gt;
+ element gives the name of the header, as one would specify when
+ including the header. For instance, the &lt;library-reference&gt;
+ for the <a href="../../any.html" title="Chapter 1. Boost.Any">Any</a> library may look like
+ this:</p>
+<pre class="programlisting">&lt;library-reference&gt;
+ &lt;header name="boost/any.hpp"&gt;
+ &lt;!-- C++ constructs in this header --&gt;
+ &lt;/header&gt;
+&lt;/library-reference&gt;</pre>
+<p>If the <a href="../../any.html" title="Chapter 1. Boost.Any">Any</a> library contained
+ multiple headers, we would list them all as children of the
+ &lt;library-reference&gt; element.</p>
+<p><code class="sgmltag-element">library-reference</code> elements can be nested,
+ so that reference material can be divided into separate sections
+ that each contain different headers.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1676246"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarylist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="boostbook.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/library.html b/doc/html/boostbook/dtd/library.html
new file mode 100644
index 0000000000..6ae09fb277
--- /dev/null
+++ b/doc/html/boostbook/dtd/library.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element library</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="template-nontype-parameter.html" title="
+ BoostBook element template-nontype-parameter">
+<link rel="next" href="librarycategorylist.html" title="
+ BoostBook element librarycategorylist">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-nontype-parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategorylist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.library"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">library</code></span></h2>
+<p>library &#8212; Top-level element for a library</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">library ::=
+ (<a href="libraryinfo.html" title="
+ BoostBook element libraryinfo">libraryinfo</a>, (title, ((section| <a href="library-reference.html" title="
+ BoostBook element library-reference">library-reference</a>| <a href="testsuite.html" title="
+ BoostBook element testsuite">testsuite</a>))+)?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699421"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>dirname</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td> </td>
+</tr>
+<tr>
+<td>url</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td> </td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+<tr>
+<td>html-only</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-nontype-parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarycategorylist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/librarycategory.html b/doc/html/boostbook/dtd/librarycategory.html
new file mode 100644
index 0000000000..b277475607
--- /dev/null
+++ b/doc/html/boostbook/dtd/librarycategory.html
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element librarycategory</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="functionname.html" title="
+ BoostBook element functionname">
+<link rel="next" href="notes.html" title="
+ BoostBook element notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="functionname.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="notes.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.librarycategory"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">librarycategory</code></span></h2>
+<p>librarycategory &#8212; Declares that the enclosing library is in this category</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">librarycategory ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1695755"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="functionname.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="notes.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/librarycategorydef.html b/doc/html/boostbook/dtd/librarycategorydef.html
new file mode 100644
index 0000000000..a424751ffd
--- /dev/null
+++ b/doc/html/boostbook/dtd/librarycategorydef.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element librarycategorydef</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="class.html" title="
+ BoostBook element class">
+<link rel="next" href="type.html" title="
+ BoostBook element type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="class.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.librarycategorydef"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">librarycategorydef</code></span></h2>
+<p>librarycategorydef &#8212; Defines a new library category</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">librarycategorydef ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698612"></a><h2>Description</h2>
+<p>All library category definitions should be in <code class="filename">doc/src/boost.xml</code>, and the names of categories must be prefixed with "<code class="computeroutput">category:</code>".</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1698631"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="class.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/librarycategorylist.html b/doc/html/boostbook/dtd/librarycategorylist.html
new file mode 100644
index 0000000000..ed26698903
--- /dev/null
+++ b/doc/html/boostbook/dtd/librarycategorylist.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element librarycategorylist</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="library.html" title="
+ BoostBook element library">
+<link rel="next" href="using-namespace.html" title="
+ BoostBook element using-namespace">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="library.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="using-namespace.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.librarycategorylist"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">librarycategorylist</code></span></h2>
+<p>librarycategorylist &#8212; Categorized listing of libraries</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">librarycategorylist ::=
+ (<a href="librarycategorydef.html" title="
+ BoostBook element librarycategorydef">librarycategorydef</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1699546"></a><h2>Description</h2>
+<p>This element is not intended for use by developers, but is
+ used by <code class="filename">doc/src/boost.xml</code> as a
+ placeholder.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1699559"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="library.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="using-namespace.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/libraryinfo.html b/doc/html/boostbook/dtd/libraryinfo.html
new file mode 100644
index 0000000000..834ef2de8b
--- /dev/null
+++ b/doc/html/boostbook/dtd/libraryinfo.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element libraryinfo</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="libraryname.html" title="
+ BoostBook element libraryname">
+<link rel="next" href="testsuite.html" title="
+ BoostBook element testsuite">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraryname.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="testsuite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.libraryinfo"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">libraryinfo</code></span></h2>
+<p>libraryinfo &#8212; Provides information about a library</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">libraryinfo ::=
+ (author+, copyright*, legalnotice*, <a href="librarypurpose.html" title="
+ BoostBook element librarypurpose">librarypurpose</a>, <a href="librarycategory.html" title="
+ BoostBook element librarycategory">librarycategory</a>*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700638"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraryname.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="testsuite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/librarylist.html b/doc/html/boostbook/dtd/librarylist.html
new file mode 100644
index 0000000000..fc7f17a188
--- /dev/null
+++ b/doc/html/boostbook/dtd/librarylist.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element librarylist</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="description.html" title="
+ BoostBook element description">
+<link rel="next" href="library-reference.html" title="
+ BoostBook element library-reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="description.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="library-reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.librarylist"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">librarylist</code></span></h2>
+<p>librarylist &#8212; Placeholder for an alphabetical list of libraries</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">librarylist ::=
+ EMPTY
+</div>
+<div class="refsection" lang="en">
+<a name="id1676075"></a><h2>Description</h2>
+<p>Developers aren't generally expected to use this element. Its existence is mainly as a placeholder in <code class="filename">boost.xml</code> for the alphabetical list of libraries.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1676089"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="description.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="library-reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/libraryname.html b/doc/html/boostbook/dtd/libraryname.html
new file mode 100644
index 0000000000..5ee2e27edc
--- /dev/null
+++ b/doc/html/boostbook/dtd/libraryname.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element libraryname</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="effects.html" title="
+ BoostBook element effects">
+<link rel="next" href="libraryinfo.html" title="
+ BoostBook element libraryinfo">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="effects.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="libraryinfo.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.libraryname"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">libraryname</code></span></h2>
+<p>libraryname &#8212; References a library of the given name</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">libraryname ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700545"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="effects.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="libraryinfo.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/librarypurpose.html b/doc/html/boostbook/dtd/librarypurpose.html
new file mode 100644
index 0000000000..1992cd7fd3
--- /dev/null
+++ b/doc/html/boostbook/dtd/librarypurpose.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element librarypurpose</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="run-test.html" title="
+ BoostBook element run-test">
+<link rel="next" href="copy-assignment.html" title="
+ BoostBook element copy-assignment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="run-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="copy-assignment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.librarypurpose"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">librarypurpose</code></span></h2>
+<p>librarypurpose &#8212; Describes in one short sentence or phrase the purpose of a library</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">librarypurpose ::=
+ (#PCDATA| <a href="code.html" title="
+ BoostBook element code">code</a>| ulink| <a href="functionname.html" title="
+ BoostBook element functionname">functionname</a>| methodname| classname)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1697088"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="run-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="copy-assignment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/link-fail-test.html b/doc/html/boostbook/dtd/link-fail-test.html
new file mode 100644
index 0000000000..03daf687bc
--- /dev/null
+++ b/doc/html/boostbook/dtd/link-fail-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element link-fail-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="link-test.html" title="
+ BoostBook element link-test">
+<link rel="next" href="typedef.html" title="
+ BoostBook element typedef">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="link-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="typedef.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.link-fail-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">link-fail-test</code></span></h2>
+<p>link-fail-test &#8212; Declares a test that should compile but fail to link</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">link-fail-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675282"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="link-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="typedef.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/link-test.html b/doc/html/boostbook/dtd/link-test.html
new file mode 100644
index 0000000000..4d171bb008
--- /dev/null
+++ b/doc/html/boostbook/dtd/link-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element link-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="class-specialization.html" title="
+ BoostBook element class-specialization">
+<link rel="next" href="link-fail-test.html" title="
+ BoostBook element link-fail-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="class-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="link-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.link-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">link-test</code></span></h2>
+<p>link-test &#8212; Declares a test that should compile and link</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">link-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675180"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="class-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="link-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/method-group.html b/doc/html/boostbook/dtd/method-group.html
new file mode 100644
index 0000000000..554abf5c51
--- /dev/null
+++ b/doc/html/boostbook/dtd/method-group.html
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element method-group</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="template-arg.html" title="
+ BoostBook element template-arg">
+<link rel="next" href="requirement.html" title="
+ BoostBook element requirement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-arg.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="requirement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.method-group"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">method-group</code></span></h2>
+<p>method-group &#8212; A set of methods that are grouped together under one name</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">method-group ::=
+ (<a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1696554"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-arg.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="requirement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/method.html b/doc/html/boostbook/dtd/method.html
new file mode 100644
index 0000000000..940959965a
--- /dev/null
+++ b/doc/html/boostbook/dtd/method.html
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element method</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="compile-test.html" title="
+ BoostBook element compile-test">
+<link rel="next" href="snippet.html" title="
+ BoostBook element snippet">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compile-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="snippet.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.method"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">method</code></span></h2>
+<p>method &#8212; Declares a method, i.e., a member function</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">method ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="type.html" title="
+ BoostBook element type">type</a>, <a href="parameter.html" title="
+ BoostBook element parameter">parameter</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1677439"></a><h2>Description</h2>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1677454"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>cv</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>cv-qualifiers for this method, e.g., const volatile</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compile-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="snippet.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/namespace.html b/doc/html/boostbook/dtd/namespace.html
new file mode 100644
index 0000000000..4a02cce0d0
--- /dev/null
+++ b/doc/html/boostbook/dtd/namespace.html
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element namespace</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="constructor.html" title="
+ BoostBook element constructor">
+<link rel="next" href="if-fails.html" title="
+ BoostBook element if-fails">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="constructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="if-fails.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.namespace"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">namespace</code></span></h2>
+<p>namespace &#8212; Declares a namespace</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">namespace ::=
+ (<a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="namespace.html" title="
+ BoostBook element namespace">namespace</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1695385"></a><h2>Description</h2>
+<p>BoostBook namespaces are declared via the &lt;namespace&gt;
+ element. As in C++, namespaces can be nested and contain other C++
+ constructs, such as classes or functions. The <code class="computeroutput">name</code>
+ attribute of a &lt;namespace&gt; element gives the namespace name
+ (e.g., "boost"). The <a href="../../any.html" title="Chapter 1. Boost.Any">Any</a> library is
+ defined entirely within namespace boost by:</p>
+<pre class="programlisting">&lt;library-reference&gt;
+ &lt;header name="boost/any.hpp"&gt;
+ &lt;namespace name="boost"&gt;
+ &lt;!-- C++ constructs in the boost namespace --&gt;
+ &lt;/namespace&gt;
+ &lt;/header&gt;
+&lt;/library-reference&gt;</pre>
+</div>
+<div class="refsection" lang="en">
+<a name="id1695418"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="constructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="if-fails.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/notes.html b/doc/html/boostbook/dtd/notes.html
new file mode 100644
index 0000000000..0feff37edd
--- /dev/null
+++ b/doc/html/boostbook/dtd/notes.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element notes</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="librarycategory.html" title="
+ BoostBook element librarycategory">
+<link rel="next" href="data-member.html" title="
+ BoostBook element data-member">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategory.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="data-member.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.notes"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">notes</code></span></h2>
+<p>notes &#8212; Non-normative notes about a function's semantics</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">notes ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1695844"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategory.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="data-member.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/overloaded-function.html b/doc/html/boostbook/dtd/overloaded-function.html
new file mode 100644
index 0000000000..bd51825992
--- /dev/null
+++ b/doc/html/boostbook/dtd/overloaded-function.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element overloaded-function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="signature.html" title="
+ BoostBook element signature">
+<link rel="next" href="class.html" title="
+ BoostBook element class">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signature.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="class.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.overloaded-function"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">overloaded-function</code></span></h2>
+<p>overloaded-function &#8212; An overloaded function</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">overloaded-function ::=
+ (<a href="signature.html" title="
+ BoostBook element signature">signature</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698122"></a><h2>Description</h2>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1698137"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signature.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="class.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/overloaded-method.html b/doc/html/boostbook/dtd/overloaded-method.html
new file mode 100644
index 0000000000..638a8b14d5
--- /dev/null
+++ b/doc/html/boostbook/dtd/overloaded-method.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element overloaded-method</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="enumvalue.html" title="
+ BoostBook element enumvalue">
+<link rel="next" href="programlisting.html" title="
+ BoostBook element programlisting">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="enumvalue.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="programlisting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.overloaded-method"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">overloaded-method</code></span></h2>
+<p>overloaded-method &#8212; An overloaded method</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">overloaded-method ::=
+ (<a href="signature.html" title="
+ BoostBook element signature">signature</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, <a href="requires.html" title="
+ BoostBook element requires">requires</a>?, <a href="effects.html" title="
+ BoostBook element effects">effects</a>?, <a href="postconditions.html" title="
+ BoostBook element postconditions">postconditions</a>?, <a href="returns.html" title="
+ BoostBook element returns">returns</a>?, <a href="throws.html" title="
+ BoostBook element throws">throws</a>?, <a href="complexity.html" title="
+ BoostBook element complexity">complexity</a>?, <a href="notes.html" title="
+ BoostBook element notes">notes</a>?, <a href="rationale.html" title="
+ BoostBook element rationale">rationale</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698973"></a><h2>Description</h2>
+<p>General documentation on functions in BoostBook is provided in
+ the <a href="function.html" title="
+ BoostBook element function"><code class="sgmltag-element">function</code></a>
+ element documentation.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1698988"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="enumvalue.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="programlisting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/parameter.html b/doc/html/boostbook/dtd/parameter.html
new file mode 100644
index 0000000000..d388c625e5
--- /dev/null
+++ b/doc/html/boostbook/dtd/parameter.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element parameter</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="default.html" title="
+ BoostBook element default">
+<link rel="next" href="signature.html" title="
+ BoostBook element signature">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="default.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="signature.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.parameter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">parameter</code></span></h2>
+<p>parameter &#8212; A function parameter</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">parameter ::=
+ (<a href="paramtype.html" title="
+ BoostBook element paramtype">paramtype</a>, <a href="default.html" title="
+ BoostBook element default">default</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697854"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody><tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr></tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="default.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="signature.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/paramtype.html b/doc/html/boostbook/dtd/paramtype.html
new file mode 100644
index 0000000000..37b52a3382
--- /dev/null
+++ b/doc/html/boostbook/dtd/paramtype.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element paramtype</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="precondition.html" title="
+ BoostBook element precondition">
+<link rel="next" href="using-class.html" title="
+ BoostBook element using-class">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="precondition.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="using-class.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.paramtype"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">paramtype</code></span></h2>
+<p>paramtype &#8212; The type of a function parameter</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">paramtype ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696803"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="precondition.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="using-class.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/postconditions.html b/doc/html/boostbook/dtd/postconditions.html
new file mode 100644
index 0000000000..2cf5a2e4b1
--- /dev/null
+++ b/doc/html/boostbook/dtd/postconditions.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element postconditions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="function.html" title="
+ BoostBook element function">
+<link rel="next" href="compile-test.html" title="
+ BoostBook element compile-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="compile-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.postconditions"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">postconditions</code></span></h2>
+<p>postconditions &#8212; Conditions that must hold after the function returns</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">postconditions ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1677166"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="compile-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/precondition.html b/doc/html/boostbook/dtd/precondition.html
new file mode 100644
index 0000000000..7b7ffe048d
--- /dev/null
+++ b/doc/html/boostbook/dtd/precondition.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element precondition</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="requirement.html" title="
+ BoostBook element requirement">
+<link rel="next" href="paramtype.html" title="
+ BoostBook element paramtype">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="requirement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="paramtype.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.precondition"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">precondition</code></span></h2>
+<p>precondition &#8212; Conditions that must be met prior to executing a function</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">precondition ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696726"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="requirement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="paramtype.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/programlisting.html b/doc/html/boostbook/dtd/programlisting.html
new file mode 100644
index 0000000000..bd20b53183
--- /dev/null
+++ b/doc/html/boostbook/dtd/programlisting.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element programlisting</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="overloaded-method.html" title="
+ BoostBook element overloaded-method">
+<link rel="next" href="complexity.html" title="
+ BoostBook element complexity">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overloaded-method.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="complexity.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.programlisting"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">programlisting</code></span></h2>
+<p>programlisting &#8212; A sample of program code</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">programlisting ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699077"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody><tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr></tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overloaded-method.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="complexity.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/purpose.html b/doc/html/boostbook/dtd/purpose.html
new file mode 100644
index 0000000000..f2a812cd18
--- /dev/null
+++ b/doc/html/boostbook/dtd/purpose.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element purpose</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="complexity.html" title="
+ BoostBook element complexity">
+<link rel="next" href="template-nontype-parameter.html" title="
+ BoostBook element template-nontype-parameter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexity.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-nontype-parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.purpose"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">purpose</code></span></h2>
+<p>purpose &#8212; A short description of an entity's use</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">purpose ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699209"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexity.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-nontype-parameter.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/rationale.html b/doc/html/boostbook/dtd/rationale.html
new file mode 100644
index 0000000000..6b00e4a4cd
--- /dev/null
+++ b/doc/html/boostbook/dtd/rationale.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element rationale</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="header.html" title="
+ BoostBook element header">
+<link rel="next" href="../../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="header.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="../../bbv2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.rationale"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">rationale</code></span></h2>
+<p>rationale &#8212; Describes the rationale for a particular function's design</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">rationale ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700924"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="header.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="../../bbv2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/requirement.html b/doc/html/boostbook/dtd/requirement.html
new file mode 100644
index 0000000000..5176b7d26d
--- /dev/null
+++ b/doc/html/boostbook/dtd/requirement.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element requirement</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="method-group.html" title="
+ BoostBook element method-group">
+<link rel="next" href="precondition.html" title="
+ BoostBook element precondition">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="method-group.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="precondition.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.requirement"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">requirement</code></span></h2>
+<p>requirement &#8212; A requirement/property in the Jamfile for a testcase</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">requirement ::=
+ (#PCDATA)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696643"></a><h2>Description</h2>
+<p>A requirement is part of the dependencies of a target in a
+ Jamfile. The <code class="computeroutput">name</code> attribute of a requirement element
+ gives the name of the Boost.Build feature and the content of the
+ requirement gives the value of that feature. A requirement such as
+ <code class="computeroutput">&lt;includes&gt;foo.hpp</code> would be encoded as
+ <code class="computeroutput">&lt;requirement
+ name="includes"&gt;foo.hpp&lt;/requirement&gt;</code>.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1696672"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody><tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr></tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="method-group.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="precondition.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/requires.html b/doc/html/boostbook/dtd/requires.html
new file mode 100644
index 0000000000..459549cb81
--- /dev/null
+++ b/doc/html/boostbook/dtd/requires.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element requires</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="enum.html" title="
+ BoostBook element enum">
+<link rel="next" href="effects.html" title="
+ BoostBook element effects">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="enum.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="effects.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.requires"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">requires</code></span></h2>
+<p>requires &#8212; Declares the requirements of a function</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">requires ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700391"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="enum.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="effects.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/returns.html b/doc/html/boostbook/dtd/returns.html
new file mode 100644
index 0000000000..a9978aefd1
--- /dev/null
+++ b/doc/html/boostbook/dtd/returns.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element returns</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="compile-fail-test.html" title="
+ BoostBook element compile-fail-test">
+<link rel="next" href="default.html" title="
+ BoostBook element default">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compile-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="default.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.returns"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">returns</code></span></h2>
+<p>returns &#8212; Description of the return value of a function</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">returns ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697685"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compile-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="default.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/run-fail-test.html b/doc/html/boostbook/dtd/run-fail-test.html
new file mode 100644
index 0000000000..223dfdf06d
--- /dev/null
+++ b/doc/html/boostbook/dtd/run-fail-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element run-fail-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="copy-assignment.html" title="
+ BoostBook element copy-assignment">
+<link rel="next" href="template.html" title="
+ BoostBook element template">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="copy-assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.run-fail-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">run-fail-test</code></span></h2>
+<p>run-fail-test &#8212; A testcase that should compile and link, but fail on execution</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">run-fail-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697416"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="copy-assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/run-test.html b/doc/html/boostbook/dtd/run-test.html
new file mode 100644
index 0000000000..419cb2d5b9
--- /dev/null
+++ b/doc/html/boostbook/dtd/run-test.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element run-test</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="using-class.html" title="
+ BoostBook element using-class">
+<link rel="next" href="librarypurpose.html" title="
+ BoostBook element librarypurpose">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using-class.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarypurpose.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.run-test"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">run-test</code></span></h2>
+<p>run-test &#8212; A testcase that should compile, link, and execute</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">run-test ::=
+ (<a href="source.html" title="
+ BoostBook element source">source</a>*, <a href="lib.html" title="
+ BoostBook element lib">lib</a>*, <a href="requirement.html" title="
+ BoostBook element requirement">requirement</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>, <a href="if-fails.html" title="
+ BoostBook element if-fails">if-fails</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697006"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>filename</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the file associated with this element</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using-class.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="librarypurpose.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/signature.html b/doc/html/boostbook/dtd/signature.html
new file mode 100644
index 0000000000..02f0fe0240
--- /dev/null
+++ b/doc/html/boostbook/dtd/signature.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element signature</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="parameter.html" title="
+ BoostBook element parameter">
+<link rel="next" href="overloaded-function.html" title="
+ BoostBook element overloaded-function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="overloaded-function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.signature"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">signature</code></span></h2>
+<p>signature &#8212; One signature of an overloaded function or method</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">signature ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="type.html" title="
+ BoostBook element type">type</a>, <a href="parameter.html" title="
+ BoostBook element parameter">parameter</a>*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1697931"></a><h2>Description</h2>
+<p>
+ A signature refers to one declaration of an overloaded function or
+ method. The signature itself has no name, because the name of the
+ overloaded function or method is used. An overloaded function or
+ method will have several signatures that will generally be typeset
+ together.
+ </p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1697942"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>cv</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>cv-qualifiers for this method, e.g., const volatile</td>
+</tr>
+<tr>
+<td>specifiers</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>The specifiers for this function, e.g., inline, static, etc.</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parameter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="overloaded-function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/snippet.html b/doc/html/boostbook/dtd/snippet.html
new file mode 100644
index 0000000000..f30ab5356e
--- /dev/null
+++ b/doc/html/boostbook/dtd/snippet.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element snippet</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="method.html" title="
+ BoostBook element method">
+<link rel="next" href="constructor.html" title="
+ BoostBook element constructor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="method.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="constructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.snippet"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">snippet</code></span></h2>
+<p>snippet &#8212; Pulls in a code snippet from a <code class="sgmltag-element">programlisting</code> element</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">snippet ::=
+ EMPTY
+</div>
+<div class="refsection" lang="en">
+<a name="id1677569"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody><tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the <code class="sgmltag-element">programlisting</code> element to insert</td>
+</tr></tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="method.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="constructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/source.html b/doc/html/boostbook/dtd/source.html
new file mode 100644
index 0000000000..db9d25f254
--- /dev/null
+++ b/doc/html/boostbook/dtd/source.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element source</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="template-varargs.html" title="
+ BoostBook element template-varargs">
+<link rel="next" href="function.html" title="
+ BoostBook element function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-varargs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.source"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">source</code></span></h2>
+<p>source &#8212; Defines source code for a test</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">source ::=
+ (#PCDATA| <a href="snippet.html" title="
+ BoostBook element snippet">snippet</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1676873"></a><h2>Description</h2>
+<p>This element will contain the source code for a testcase that
+ will be generated from the documentation. To reduce the amount of escaping in the text, it is recommended to use CDATA sections, which look like this:
+
+ </p>
+<pre class="programlisting">&lt;![CDATA[
+&lt;your program text here: no escaping needed!&gt;
+]]&gt;</pre>
+<p>In addition to CDATA sections, code snippets can be pulled in
+ from <code class="sgmltag-element">programlisting</code> elements using the <a href="snippet.html" title="
+ BoostBook element snippet"><code class="sgmltag-element">snippet</code></a>
+ element.</p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="template-varargs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/specialization.html b/doc/html/boostbook/dtd/specialization.html
new file mode 100644
index 0000000000..e090741b38
--- /dev/null
+++ b/doc/html/boostbook/dtd/specialization.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element specialization</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="data-member.html" title="
+ BoostBook element data-member">
+<link rel="next" href="union-specialization.html" title="
+ BoostBook element union-specialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="data-member.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="union-specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.specialization"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">specialization</code></span></h2>
+<p>specialization &#8212; Defines the specialization arguments for a class specialization</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">specialization ::=
+ (<a href="template-arg.html" title="
+ BoostBook element template-arg">template-arg</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1696040"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="data-member.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="union-specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/static-constant.html b/doc/html/boostbook/dtd/static-constant.html
new file mode 100644
index 0000000000..19c3283dab
--- /dev/null
+++ b/doc/html/boostbook/dtd/static-constant.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element static-constant</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="typedef.html" title="
+ BoostBook element typedef">
+<link rel="next" href="code.html" title="
+ BoostBook element code">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="typedef.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="code.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.static-constant"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">static-constant</code></span></h2>
+<p>static-constant &#8212; Declares a static constant, e.g., <code class="computeroutput">const int foo = 5;</code>.</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">static-constant ::=
+ (<a href="type.html" title="
+ BoostBook element type">type</a>, <a href="default.html" title="
+ BoostBook element default">default</a>, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675493"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="typedef.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="code.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/struct-specialization.html b/doc/html/boostbook/dtd/struct-specialization.html
new file mode 100644
index 0000000000..096585ffeb
--- /dev/null
+++ b/doc/html/boostbook/dtd/struct-specialization.html
@@ -0,0 +1,116 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element struct-specialization</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="using-namespace.html" title="
+ BoostBook element using-namespace">
+<link rel="next" href="struct.html" title="
+ BoostBook element struct">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using-namespace.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="struct.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.struct-specialization"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">struct-specialization</code></span></h2>
+<p>struct-specialization &#8212; A specialization (full or partial) of a struct template</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">struct-specialization ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="specialization.html" title="
+ BoostBook element specialization">specialization</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>?, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699906"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using-namespace.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="struct.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/struct.html b/doc/html/boostbook/dtd/struct.html
new file mode 100644
index 0000000000..ade2ee0ff4
--- /dev/null
+++ b/doc/html/boostbook/dtd/struct.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element struct</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="struct-specialization.html" title="
+ BoostBook element struct-specialization">
+<link rel="next" href="lib.html" title="
+ BoostBook element lib">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="struct-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="lib.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.struct"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">struct</code></span></h2>
+<p>struct &#8212; Declares a C++ struct</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">struct ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700164"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="struct-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="lib.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/template-arg.html b/doc/html/boostbook/dtd/template-arg.html
new file mode 100644
index 0000000000..c251edc63d
--- /dev/null
+++ b/doc/html/boostbook/dtd/template-arg.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element template-arg</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="throws.html" title="
+ BoostBook element throws">
+<link rel="next" href="method-group.html" title="
+ BoostBook element method-group">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="throws.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="method-group.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.template-arg"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">template-arg</code></span></h2>
+<p>template-arg &#8212; A template argument in a specialization</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">template-arg ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696462"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="throws.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="method-group.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/template-nontype-parameter.html b/doc/html/boostbook/dtd/template-nontype-parameter.html
new file mode 100644
index 0000000000..f2be365f42
--- /dev/null
+++ b/doc/html/boostbook/dtd/template-nontype-parameter.html
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element template-nontype-parameter</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="purpose.html" title="
+ BoostBook element purpose">
+<link rel="next" href="library.html" title="
+ BoostBook element library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="purpose.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="library.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.template-nontype-parameter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">template-nontype-parameter</code></span></h2>
+<p>template-nontype-parameter &#8212; A nontype template parameter</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">template-nontype-parameter ::=
+ (<a href="type.html" title="
+ BoostBook element type">type</a>, <a href="default.html" title="
+ BoostBook element default">default</a>?, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1699310"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="purpose.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="library.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/template-type-parameter.html b/doc/html/boostbook/dtd/template-type-parameter.html
new file mode 100644
index 0000000000..3f9c5ce0b7
--- /dev/null
+++ b/doc/html/boostbook/dtd/template-type-parameter.html
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element template-type-parameter</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="destructor.html" title="
+ BoostBook element destructor">
+<link rel="next" href="description.html" title="
+ BoostBook element description">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="description.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.template-type-parameter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">template-type-parameter</code></span></h2>
+<p>template-type-parameter &#8212; Declares a template type parameter</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">template-type-parameter ::=
+ (<a href="default.html" title="
+ BoostBook element default">default</a>?, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675874"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="description.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/template-varargs.html b/doc/html/boostbook/dtd/template-varargs.html
new file mode 100644
index 0000000000..1a64015e4d
--- /dev/null
+++ b/doc/html/boostbook/dtd/template-varargs.html
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element template-varargs</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="inherit.html" title="
+ BoostBook element inherit">
+<link rel="next" href="source.html" title="
+ BoostBook element source">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inherit.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="source.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.template-varargs"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">template-varargs</code></span></h2>
+<p>template-varargs &#8212; Declares a variable-length list of template parameters</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">template-varargs ::=
+ EMPTY
+</div>
+<div class="refsection" lang="en">
+<a name="id1676778"></a><h2>Description</h2>
+<p>Variable-length template parameter lists are not allowed in
+ C++, but because they are sometimes needed in documentation they are
+ allowed in BoostBook. This element generally expands to "..." and
+ can be used anywhere any other template parameter can be
+ used.</p>
+</div>
+<div class="refsection" lang="en">
+<a name="id1676789"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inherit.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="source.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/template.html b/doc/html/boostbook/dtd/template.html
new file mode 100644
index 0000000000..78ca358de0
--- /dev/null
+++ b/doc/html/boostbook/dtd/template.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element template</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="run-fail-test.html" title="
+ BoostBook element run-fail-test">
+<link rel="next" href="compile-fail-test.html" title="
+ BoostBook element compile-fail-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="run-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="compile-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.template"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">template</code></span></h2>
+<p>template &#8212; Declares the template parameters of a class or function</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">template ::=
+ (<a href="template-type-parameter.html" title="
+ BoostBook element template-type-parameter">template-type-parameter</a>| <a href="template-nontype-parameter.html" title="
+ BoostBook element template-nontype-parameter">template-nontype-parameter</a>| <a href="template-varargs.html" title="
+ BoostBook element template-varargs">template-varargs</a>)*
+</div>
+<div class="refsection" lang="en">
+<a name="id1697505"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="run-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="compile-fail-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/testsuite.html b/doc/html/boostbook/dtd/testsuite.html
new file mode 100644
index 0000000000..248b34b303
--- /dev/null
+++ b/doc/html/boostbook/dtd/testsuite.html
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element testsuite</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="libraryinfo.html" title="
+ BoostBook element libraryinfo">
+<link rel="next" href="header.html" title="
+ BoostBook element header">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraryinfo.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.testsuite"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">testsuite</code></span></h2>
+<p>testsuite &#8212; Describes a library testsuite</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">testsuite ::=
+ ((<a href="compile-test.html" title="
+ BoostBook element compile-test">compile-test</a>| <a href="link-test.html" title="
+ BoostBook element link-test">link-test</a>| <a href="run-test.html" title="
+ BoostBook element run-test">run-test</a>| <a href="compile-fail-test.html" title="
+ BoostBook element compile-fail-test">compile-fail-test</a>| <a href="link-fail-test.html" title="
+ BoostBook element link-fail-test">link-fail-test</a>| <a href="run-fail-test.html" title="
+ BoostBook element run-fail-test">run-fail-test</a>)+)
+</div>
+<div class="refsection" lang="en">
+<a name="id1700758"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="libraryinfo.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="header.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/throws.html b/doc/html/boostbook/dtd/throws.html
new file mode 100644
index 0000000000..07e3e0ebae
--- /dev/null
+++ b/doc/html/boostbook/dtd/throws.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element throws</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="union-specialization.html" title="
+ BoostBook element union-specialization">
+<link rel="next" href="template-arg.html" title="
+ BoostBook element template-arg">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="union-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-arg.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.throws"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">throws</code></span></h2>
+<p>throws &#8212; Description of the exceptions thrown by a function</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">throws ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696385"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="union-specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="template-arg.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/type.html b/doc/html/boostbook/dtd/type.html
new file mode 100644
index 0000000000..579a228825
--- /dev/null
+++ b/doc/html/boostbook/dtd/type.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element type</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="librarycategorydef.html" title="
+ BoostBook element librarycategorydef">
+<link rel="next" href="enumvalue.html" title="
+ BoostBook element enumvalue">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategorydef.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="enumvalue.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.type"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">type</code></span></h2>
+<p>type &#8212; The type of an element or return type of a function</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">type ::=
+ (ANY)
+</div>
+<div class="refsection" lang="en">
+<a name="id1698720"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategorydef.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="enumvalue.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/typedef.html b/doc/html/boostbook/dtd/typedef.html
new file mode 100644
index 0000000000..070df353c6
--- /dev/null
+++ b/doc/html/boostbook/dtd/typedef.html
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element typedef</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="link-fail-test.html" title="
+ BoostBook element link-fail-test">
+<link rel="next" href="static-constant.html" title="
+ BoostBook element static-constant">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="link-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="static-constant.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.typedef"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">typedef</code></span></h2>
+<p>typedef &#8212; Declares a typedef</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">typedef ::=
+ (<a href="type.html" title="
+ BoostBook element type">type</a>, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?)
+</div>
+<div class="refsection" lang="en">
+<a name="id1675370"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="link-fail-test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="static-constant.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/union-specialization.html b/doc/html/boostbook/dtd/union-specialization.html
new file mode 100644
index 0000000000..dc11d106d1
--- /dev/null
+++ b/doc/html/boostbook/dtd/union-specialization.html
@@ -0,0 +1,116 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element union-specialization</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="specialization.html" title="
+ BoostBook element specialization">
+<link rel="next" href="throws.html" title="
+ BoostBook element throws">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="throws.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.union-specialization"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">union-specialization</code></span></h2>
+<p>union-specialization &#8212; A specialization (full or partial) of a union template</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">union-specialization ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="specialization.html" title="
+ BoostBook element specialization">specialization</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>?, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1696296"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="specialization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="throws.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/union.html b/doc/html/boostbook/dtd/union.html
new file mode 100644
index 0000000000..6630e7c6c5
--- /dev/null
+++ b/doc/html/boostbook/dtd/union.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element union</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="boostbook.html" title="
+ BoostBook element boostbook">
+<link rel="next" href="inherit.html" title="
+ BoostBook element inherit">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="inherit.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.union"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">union</code></span></h2>
+<p>union &#8212; Declares a C++ union or union template</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">union ::=
+ (<a href="template.html" title="
+ BoostBook element template">template</a>?, <a href="inherit.html" title="
+ BoostBook element inherit">inherit</a>*, <a href="purpose.html" title="
+ BoostBook element purpose">purpose</a>?, <a href="description.html" title="
+ BoostBook element description">description</a>?, (<a href="static-constant.html" title="
+ BoostBook element static-constant">static-constant</a>| <a href="typedef.html" title="
+ BoostBook element typedef">typedef</a>| <a href="enum.html" title="
+ BoostBook element enum">enum</a>| <a href="copy-assignment.html" title="
+ BoostBook element copy-assignment">copy-assignment</a>| <a href="constructor.html" title="
+ BoostBook element constructor">constructor</a>| <a href="destructor.html" title="
+ BoostBook element destructor">destructor</a>| <a href="method-group.html" title="
+ BoostBook element method-group">method-group</a>| <a href="free-function-group.html" title="
+ BoostBook element free-function-group">free-function-group</a>| <a href="function.html" title="
+ BoostBook element function">function</a>| <a href="method.html" title="
+ BoostBook element method">method</a>| <a href="overloaded-function.html" title="
+ BoostBook element overloaded-function">overloaded-function</a>| <a href="overloaded-method.html" title="
+ BoostBook element overloaded-method">overloaded-method</a>| <a href="data-member.html" title="
+ BoostBook element data-member">data-member</a>| <a href="class.html" title="
+ BoostBook element class">class</a>| <a href="class-specialization.html" title="
+ BoostBook element class-specialization">class-specialization</a>| <a href="struct.html" title="
+ BoostBook element struct">struct</a>| <a href="struct-specialization.html" title="
+ BoostBook element struct-specialization">struct-specialization</a>| <a href="union.html" title="
+ BoostBook element union">union</a>| <a href="union-specialization.html" title="
+ BoostBook element union-specialization">union-specialization</a>)*)
+</div>
+<div class="refsection" lang="en">
+<a name="id1676591"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="inherit.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/using-class.html b/doc/html/boostbook/dtd/using-class.html
new file mode 100644
index 0000000000..8832685922
--- /dev/null
+++ b/doc/html/boostbook/dtd/using-class.html
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element using-class</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="paramtype.html" title="
+ BoostBook element paramtype">
+<link rel="next" href="run-test.html" title="
+ BoostBook element run-test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="paramtype.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="run-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.using-class"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">using-class</code></span></h2>
+<p>using-class &#8212; Injects the method and function names of a class into the local scope</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">using-class ::=
+ EMPTY
+</div>
+<div class="refsection" lang="en">
+<a name="id1696881"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="paramtype.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="run-test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/dtd/using-namespace.html b/doc/html/boostbook/dtd/using-namespace.html
new file mode 100644
index 0000000000..3389b733c7
--- /dev/null
+++ b/doc/html/boostbook/dtd/using-namespace.html
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ BoostBook element using-namespace</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../reference.html" title="Chapter 20. Reference">
+<link rel="prev" href="librarycategorylist.html" title="
+ BoostBook element librarycategorylist">
+<link rel="next" href="struct-specialization.html" title="
+ BoostBook element struct-specialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategorylist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="struct-specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boostbook.dtd.using-namespace"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">
+ BoostBook element <code class="sgmltag-element">using-namespace</code></span></h2>
+<p>using-namespace &#8212; Injects the declared names from a namespace into the local scope</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">using-namespace ::=
+ EMPTY
+</div>
+<div class="refsection" lang="en">
+<a name="id1699637"></a><h2>Attributes</h2>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>Type</th>
+<th>Value</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>last-revision</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Set to $Date$ to keep "last revised" information in sync with CVS changes</td>
+</tr>
+<tr>
+<td>name</td>
+<td>#REQUIRED</td>
+<td>CDATA</td>
+<td>The name of the element being declared to referenced</td>
+</tr>
+<tr>
+<td>id</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>A global identifier for this element</td>
+</tr>
+<tr>
+<td>xml:base</td>
+<td>#IMPLIED</td>
+<td>CDATA</td>
+<td>Implementation detail used by XIncludes</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="librarycategorylist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../reference.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="struct-specialization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/getting/started.html b/doc/html/boostbook/getting/started.html
new file mode 100644
index 0000000000..dd585e7a97
--- /dev/null
+++ b/doc/html/boostbook/getting/started.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 17. Getting Started</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="prev" href="../introduction.html" title="Chapter 16. Introduction">
+<link rel="next" href="../setup/manual.html" title="Manual setup for all systems">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../introduction.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boostbook.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="../setup/manual.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="boostbook.getting.started"></a>Chapter 17. Getting Started</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="started.html#boostbook.setup.autounix">Automatic setup for Unix-like systems</a></span></dt>
+<dt><span class="section"><a href="../setup/manual.html">Manual setup for all systems</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="../setup/manual.html#boostbook.setup.xsltproc">Configuring <span><strong class="command">xsltproc</strong></span></a></span></dt>
+<dt><span class="section"><a href="../setup/manual.html#boostbook.setup.docbook">Configuring local DocBook XSL and DTD distributions</a></span></dt>
+<dt><span class="section"><a href="../setup/manual.html#boostbook.setup.doxygen">Configuring Doxygen for Documentation Extraction</a></span></dt>
+<dt><span class="section"><a href="../setup/manual.html#boostbook.setup.fop">Configuring Apache FOP</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="../setup/running.html">Running BoostBook</a></span></dt>
+<dt><span class="section"><a href="../setup/troubleshooting.html">Troubleshooting</a></span></dt>
+</dl>
+</div>
+<p>To use the Boost documentation tools, you will need several tools:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span><strong class="command">xsltproc</strong></span>:</p>
+<div class="itemizedlist"><ul type="circle">
+<li>Windows with <a href="http://www.cygwin.com/" target="_top">Cygwin</a>: select the libxml2 and libxslt packages.</li>
+<li>Windows without Cygwin: Download packages <a href="http://www.meta-comm.com/engineering/boost/xsltproc-win32.zip" target="_top">
+ here</a>.</li>
+<li>Mac OS X with Fink: Get the <code class="computeroutput">libxslt</code> package.</li>
+<li>Mac OS X without Fink: <a href="http://www.zveno.com/open_source/libxml2xslt.html" target="_top">Download the libxslt binaries</a>
+</li>
+<li>Any platform: <a href="http://xmlsoft.org/XSLT/" target="_top">libxslt source</a>.</li>
+</ul></div>
+</li>
+<li>
+<p><span><strong class="command">doxygen</strong></span>:</p> Available from <a href="../../" target="_top">http://www.doxygen.org</a>
+</li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.setup.autounix"></a>Automatic setup for Unix-like systems</h2></div></div></div>
+<p>BoostBook provides a nearly-automatic setup script. Once
+ you have downloaded and
+ installed <span><strong class="command">xsltproc</strong></span>, <span><strong class="command">doxygen</strong></span>,
+ and (optionally) <span><strong class="command">java</strong></span>, the setup script can
+ download the required DocBook stylesheets, DocBook DTD, and
+ (when Java is enabled) Apache FOP for PDF output. It will then
+ configure Boost.Build version 2 to build BoostBook
+ documentation. To perform the installation, execute the
+ script <span><strong class="command">tools/boostbook/setup_boostbook.sh</strong></span>
+ from a directory where you would like the resulting XSL, DTD,
+ and Apache FOP installations to occur. </p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../introduction.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boostbook.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="../setup/manual.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/introduction.html b/doc/html/boostbook/introduction.html
new file mode 100644
index 0000000000..c525edf8fa
--- /dev/null
+++ b/doc/html/boostbook/introduction.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 16. Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="prev" href="../boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="next" href="getting/started.html" title="Chapter 17. Getting Started">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boostbook.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="getting/started.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="boostbook.introduction"></a>Chapter 16. Introduction</h2></div></div></div>
+<p>The BoostBook documentation format is an extension of <a href="http://www.docbook.org" target="_top">DocBook</a>, an SGML- or
+ XML-based format for describing documentation. BoostBook augments
+ DocBook with semantic markup that aids in the documentation of C++
+ libraries, specifically the <a href="http://www.boost.org" target="_top">Boost C++ libraries</a>, by
+ providing the ability to express and refer to C++ constructs such
+ as namespaces, classes, overloaded functions, templates, and
+ specializations.</p>
+<p>
+ BoostBook offers additional features more specific to its use for
+ documenting the <a href="http://www.boost.org" target="_top">Boost C++
+ libraries</a>. These features are intended to eliminate or
+ reduce the need for duplication of information and to aid in
+ documenting portions of Boost that might otherwise not be
+ documented. Examples of Boost-centric features include:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><span class="bold"><strong>Testsuites</strong></span>:
+ Testsuites in Boost are created by writing an appropriate
+ Jamfile and including that Jamfile in
+ <code class="filename">status/Jamfile</code>. If the testsuites are
+ documented (<a href="http://www.boost.org/libs/multi_array/doc/test_cases.html" target="_top">as
+ in the MultiArray library</a>), the documentation is
+ maintained separately from the testcase Jamfile, leading to
+ duplication of information and the possibility of having the
+ documentation out of sync with the Jamfile. BoostBook
+ contains elements that describe a testsuite for both
+ purposes: the BoostBook stylesheets can generate
+ documentation for the testcases and also generate an
+ appropriate Jamfile to integrate the testcases with the
+ regression testing system.</p></li>
+<li>
+<p><span class="bold"><strong>Example programs</strong></span>:
+ Example programs in documentation need to be duplicated in
+ testcases to ensure that the examples compile and execute
+ correctly. Keeping the two copies in sync is a tedious and
+ error-prone task. For instance, the following code snippet
+ persisted for six months:</p>
+<pre class="programlisting">
+std::cout &lt;&lt; f(5, 3) &gt;&gt; std::endl;
+</pre>
+<p>The BoostBook format allows testcases to be generated
+ by weaving together program fragments from example programs
+ in the documentation. This capability is integrated with
+ testsuite generation so that example programs are normal
+ tests in BoostBook.</p>
+</li>
+</ul></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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boostbook.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="getting/started.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/sectioning.html b/doc/html/boostbook/sectioning.html
new file mode 100644
index 0000000000..a597cf9baa
--- /dev/null
+++ b/doc/html/boostbook/sectioning.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Sectioning in BoostBook</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="documenting.html" title="Chapter 18. Documenting libraries">
+<link rel="prev" href="documenting/s02.html" title="From HTML to BoostBook">
+<link rel="next" href="together.html" title="Chapter 19. Bringing Together a BoostBook Document">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="documenting/s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="documenting.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="together.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.sectioning"></a>Sectioning in BoostBook</h2></div></div></div>
+<p>"Sectioning" refers to organization of a document into separate sections, each with a title, some text, and possibly subsections. Each section is described in BoostBook via a &lt;section&gt; element. An introduction section may look like this:</p>
+<pre class="programlisting">
+&lt;section id="any.intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+
+ &lt;para&gt;Introduction to a library...&lt;/para&gt;
+
+ &lt;section&gt;
+ &lt;title&gt;A Subsection&lt;/title&gt;
+ &lt;para&gt;Subsection information...&lt;/para&gt;
+ &lt;/section&gt;
+&lt;/section&gt;
+</pre>
+<p>The &lt;section&gt; element contains all information that
+ should logically be grouped within that section. The title of the
+ section is placed within the &lt;title&gt; element, and any
+ paragraphs, programs, lists, tables, or subsections can occur
+ within the section. The <code class="computeroutput">id</code> attribute of the
+ &lt;section&gt; element gives a unique ID to each section, so that
+ it may later be identified for linking. It is suggested that all
+ IDs start with the short name of a library followed by a period,
+ so that IDs do not conflict between libraries.</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="documenting/s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="documenting.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="together.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/setup/manual.html b/doc/html/boostbook/setup/manual.html
new file mode 100644
index 0000000000..05951bdcef
--- /dev/null
+++ b/doc/html/boostbook/setup/manual.html
@@ -0,0 +1,168 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Manual setup for all systems</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../getting/started.html" title="Chapter 17. Getting Started">
+<link rel="prev" href="../getting/started.html" title="Chapter 17. Getting Started">
+<link rel="next" href="running.html" title="Running BoostBook">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../getting/started.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="running.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.setup.manual"></a>Manual setup for all systems</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="manual.html#boostbook.setup.xsltproc">Configuring <span><strong class="command">xsltproc</strong></span></a></span></dt>
+<dt><span class="section"><a href="manual.html#boostbook.setup.docbook">Configuring local DocBook XSL and DTD distributions</a></span></dt>
+<dt><span class="section"><a href="manual.html#boostbook.setup.doxygen">Configuring Doxygen for Documentation Extraction</a></span></dt>
+<dt><span class="section"><a href="manual.html#boostbook.setup.fop">Configuring Apache FOP</a></span></dt>
+</dl></div>
+<p>This section describes how to manually configure Boost
+ Boost version 2 (BBv@) for BoostBook. If you can use the
+ automatic setup script, you should. All configuration will
+ happen in the BBv2 user configuration file,
+ <code class="filename">user-config.jam</code>. If you do not have a copy
+ of this file in your home directory, you should copy the one
+ that resides in <code class="computeroutput">tools/build/v2</code> to your home
+ directory. Alternatively, you can edit
+ <code class="filename">tools/build/v2/user-config.jam</code> directly or
+ a site-wide <code class="filename">site-config.jam</code> file.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boostbook.setup.xsltproc"></a>Configuring <span><strong class="command">xsltproc</strong></span></h3></div></div></div>
+<p>To configure <span><strong class="command">xsltproc</strong></span> manually, you
+ will need to add a directive to
+ <code class="filename">user-config.jam</code> telling it where to find
+ <span><strong class="command">xsltproc</strong></span>. If the program is in your path,
+ just add the following line to
+ <code class="filename">user-config.jam</code>:</p>
+<pre class="programlisting">using xsltproc ;</pre>
+<p>If <span><strong class="command">xsltproc</strong></span> is somewhere else, use
+ this directive, where <code class="computeroutput">XSLTPROC</code> is the full
+ pathname to <span><strong class="command">xsltproc</strong></span> (including
+ <span><strong class="command">xsltproc</strong></span>):</p>
+<pre class="programlisting">using xsltproc : XSLTPROC ;</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boostbook.setup.docbook"></a>Configuring local DocBook XSL and DTD distributions</h3></div></div></div>
+<p>This section describes how to configure Boost.Build to
+ use local copies of the DocBook DTD and XSL stylesheets to
+ improve processing time. You will first need to download two
+ packages:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Norman Walsh's DocBook XSL stylesheets,
+ available at the <a href="http://docbook.sourceforge.net" target="_top">DocBook sourceforge
+ site</a>. Extract the DocBook XSL stylesheets to a
+ directory on your hard disk (which we'll refer to as the
+ <code class="computeroutput">DOCBOOK_XSL_DIR</code>).</p></li>
+<li><p>The DocBook DTD, available as a ZIP archive
+ at the <a href="http://www.oasis-open.org/docbook/xml/4.2/index.shtml" target="_top">OASIS
+ DocBook site</a>. The package is called "DocBook XML
+ 4.2". Extract the DocBook DTD to a directory on your hard
+ disk (which we'll refer to as the
+ <code class="computeroutput">DOCBOOK_DTD_DIR</code>). You will want to extract this
+ archive in a subdirectory!</p></li>
+</ul></div>
+<p>Add the following directive telling BBv2 where to find
+ the DocBook DTD and XSL stylesheets:</p>
+<pre class="programlisting"># BoostBook configuration
+using boostbook
+ : DOCBOOK_XSL_DIR
+ : DOCBOOK_DTD_DIR
+ ;</pre>
+<p>Whenever you change this directive, you will need to
+ remove the <code class="computeroutput">bin.v2</code> directory that BBv2 generates.
+ This is due to longstanding bug we are trying to fix.</p>
+<p>At this point, you should be able to build HTML
+ documentation for libraries that do not require Doxygen. To
+ test this, change into the directory <code class="filename">$BOOST_ROOT/libs/function/doc</code> and
+ run the command <code class="computeroutput">bjam --v2</code>: it should produce HTML
+ documentation for the Boost.Function library in the
+ <code class="computeroutput">html</code> subdirectory.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boostbook.setup.doxygen"></a>Configuring Doxygen for Documentation Extraction</h3></div></div></div>
+<p>Doxygen is required to build the documentation for
+ several Boost libraries. You will need a recent version of
+ <a href="http://www.doxygen.org" target="_top">Doxygen</a> (most of
+ the 1.3.x and 1.4.x versions will suffice). BBv2 by adding the
+ following directive to
+ <code class="filename">user-config.jam</code>:</p>
+<pre class="programlisting">using doxygen : DOXYGEN ;</pre>
+<p><code class="filename">DOXYGEN</code> should be replaced with the
+ name of the <span><strong class="command">doxygen</strong></span> executable (with full
+ path name). If the right <span><strong class="command">doxygen</strong></span> executable
+ can be found via the path, this parameter can be
+ omitted, e.g.</p>
+<pre class="programlisting">using doxygen ;</pre>
+<div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Important</h3>
+<p>The relative order of declarations in
+ <code class="filename">user-config.jam</code> /
+ <code class="filename">site-config.jam</code> files is
+ significant. In particular, the <code class="literal">using
+ doxygen</code> line should come
+ <span class="emphasis"><em>after</em></span> the <code class="literal">using
+ boostbook</code> declaration.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boostbook.setup.fop"></a>Configuring Apache FOP</h3></div></div></div>
+<p>In order to generate PDF and PostScript output using
+ Apache FOP, you will need a <a href="http://java.sun.com" target="_top">Java interpreter</a> and <a href="http://xml.apache.org/fop/download.html" target="_top">Apache FOP</a>
+ (version 0.20.5 is best). Unpack Apache FOP to some
+ directory. The top level directory of the FOP tool should
+ contain a main script called <code class="filename">fop.sh</code> on Unix
+ and <code class="filename">fop.bat</code> on Windows. You need to specify
+ the location of that script and Java location to
+ Boost.Build. Add the following to your
+ <code class="filename">user-config.jam</code> or
+ <code class="filename">site-config.jam</code>:
+</p>
+<pre class="programlisting">
+using fop : FOP_COMMAND
+ : JAVA_HOME
+ ;
+</pre>
+<p> replacing
+ <code class="computeroutput">FOP_COMMAND</code> with the full path to the FOP main script, and
+ replacing <code class="computeroutput">JAVA_HOME</code> with the directory where Java is
+ installed. If the <code class="envar">JAVA_HOME</code> environment variable is
+ already set, you don't need to specify it above.
+ </p>
+<p>To test PDF generation, switch to the directory <code class="filename">$BOOST_ROOT/libs/function/doc</code> and
+ execute the command <span><strong class="command">bjam --v2 pdf</strong></span>. In the
+ absence of any errors, Apache FOP will be executed to transform
+ the XSL:FO output of DocBook into a PDF file.</p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../getting/started.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="running.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/setup/running.html b/doc/html/boostbook/setup/running.html
new file mode 100644
index 0000000000..fb79cbd00b
--- /dev/null
+++ b/doc/html/boostbook/setup/running.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Running BoostBook</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../getting/started.html" title="Chapter 17. Getting Started">
+<link rel="prev" href="manual.html" title="Manual setup for all systems">
+<link rel="next" href="troubleshooting.html" title="Troubleshooting">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="manual.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="troubleshooting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.setup.running"></a>Running BoostBook</h2></div></div></div>
+<p>Once BoostBook has been configured, we can build some
+ documentation. First, change to the directory
+ <code class="computeroutput">$BOOST_ROOT/doc</code> and remove (or make writable) the
+ <code class="computeroutput">.html</code> files in
+ <code class="computeroutput">$BOOST_ROOT/doc/html</code>. Then, run <code class="computeroutput">bjam
+ --v2</code> to build HTML documentation. You should see several
+ warnings like these while DocBook documentation is being built
+ from BoostBook documentation:</p>
+<pre class="programlisting">Cannot find function named 'checked_delete'
+Cannot find function named 'checked_array_delete'
+Cannot find function named 'next'</pre>
+<p>These warnings are emitted when the Boost documentation
+ tools cannot find documentation for functions, methods, or classes
+ that are referenced in the source, and are not harmful in any
+ way. Once Boost.Jam has completed its execution, HTML
+ documentation for Boost will be available in
+ <code class="computeroutput">$BOOST_ROOT/doc/html</code>. You can also create HTML
+ documentation in a single (large!) HTML file with the command line
+ <code class="computeroutput">bjam --v2 onehtml</code>, or Unix man pages with the command
+ line <code class="computeroutput">bjam --v2 man</code>. The complete list of output
+ formats is listed in <a href="running.html#boostbook.output.formats" title="Table 17.1. BoostBook Output Formats">Table 17.1, &#8220;BoostBook Output Formats&#8221;</a>. Several output formats can
+ be passed to a single invocation of <code class="computeroutput">bjam</code>, e.g.,
+ <code class="computeroutput">bjam --v2 html man docbook</code> would generate HTML
+ (multiple files), man pages, and DocBook documentation.</p>
+<div class="table">
+<a name="boostbook.output.formats"></a><p class="title"><b>Table 17.1. BoostBook Output Formats</b></p>
+<table class="table" summary="BoostBook Output Formats">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Format</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>html</td>
+<td><p>HTML output (multiple files). This is the default</p></td>
+</tr>
+<tr>
+<td>onehtml</td>
+<td><p>HTML output in a single HTML file.</p></td>
+</tr>
+<tr>
+<td>man</td>
+<td><p>Unix man pages.</p></td>
+</tr>
+<tr>
+<td>pdf</td>
+<td><p>PDF. Requires <a href="http://xml.apache.org/fop/index.html" target="_top">Apache FOP</a>.</p></td>
+</tr>
+<tr>
+<td>ps</td>
+<td><p>Postscript. Requires <a href="http://xml.apache.org/fop/index.html" target="_top">Apache FOP</a>.</p></td>
+</tr>
+<tr>
+<td>docbook</td>
+<td>
+<a href="http://www.docbook.org/" target="_top">DocBook</a>.</td>
+</tr>
+<tr>
+<td>fo</td>
+<td><a href="http://www.w3.org/TR/xsl/" target="_top">XSL Formatting Objects</a></td>
+</tr>
+</tbody>
+</table>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="manual.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="troubleshooting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/setup/troubleshooting.html b/doc/html/boostbook/setup/troubleshooting.html
new file mode 100644
index 0000000000..c6c3b28256
--- /dev/null
+++ b/doc/html/boostbook/setup/troubleshooting.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Troubleshooting</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../getting/started.html" title="Chapter 17. Getting Started">
+<link rel="prev" href="running.html" title="Running BoostBook">
+<link rel="next" href="../documenting.html" title="Chapter 18. Documenting libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="running.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="../documenting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.setup.troubleshooting"></a>Troubleshooting</h2></div></div></div>
+<p>The Boost documentation tools are still in their early phase of
+ development, and some things don't work as seamlessly as we would like
+ them to, yet. In particular, error messages can be somewhat
+ uninformative at times. If you find yourself in the situation when
+ you have double checked everything, and yet things still don't work as
+ expected, consider helping the tools by deleting
+ <code class="literal">bin.v2</code> build directory.
+ </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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="running.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../getting/started.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="../documenting.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/boostbook/together.html b/doc/html/boostbook/together.html
new file mode 100644
index 0000000000..37e67dc6be
--- /dev/null
+++ b/doc/html/boostbook/together.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 19. Bringing Together a BoostBook Document</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="prev" href="sectioning.html" title="Sectioning in BoostBook">
+<link rel="next" href="../reference.html" title="Chapter 20. Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sectioning.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="../reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="boostbook.together"></a>Chapter 19. Bringing Together a BoostBook Document</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl><dt><span class="section"><a href="together.html#boostbook.linking">Linking in BoostBook</a></span></dt></dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boostbook.linking"></a>Linking in BoostBook</h2></div></div></div>
+<p>How one links to another element in BoostBook depends
+ greatly on the nature of the element linked and how the link
+ should appear. There are three general linking elements:
+ &lt;xref&gt;, &lt;link&gt;, and &lt;ulink&gt;. Additionally, there
+ are linking elements for referencing specific types of entities,
+ such as classes (&lt;classname&gt;), functions
+ (&lt;functionname&gt;), or libraries (&lt;libraryname&gt;).</p>
+<p>The &lt;xref&gt; element references elements that have an
+ <code class="computeroutput">id</code> attribute and a title. The actual link text is
+ composed from title and type of the element referenced. To link to
+ a particular ID, create an &lt;xref&gt; element with the
+ <code class="computeroutput">linkend</code> attribute set to the ID of the intended
+ target. For instance, this section's ID is
+ <code class="computeroutput">boostbook.linking</code>, so we create a reference it to
+ with <code class="computeroutput">&lt;xref linkend="boostbook.linking"/&gt;</code>, which
+ will look like this in the text: <a href="together.html#boostbook.linking" title="Linking in BoostBook">the section called &#8220;Linking in BoostBook&#8221;</a>.</p>
+<p>The &lt;link&gt; element references an ID in the same way as
+ &lt;xref&gt;, except that &lt;link&gt; does not generate any text
+ for the link, so text must be supplied within the element. For
+ instance, we can again link to this chapter but this time specify
+ our own text with <code class="computeroutput">&lt;link
+ linkend="boostbook.linking"&gt;like this&lt;/link&gt;</code>. This
+ markup will result in a link to this chapter that looks <a href="together.html#boostbook.linking" title="Linking in BoostBook">like this</a>.</p>
+<p>The &lt;ulink&gt; element references a URL that is outside
+ of the DocBook document. The <code class="computeroutput">url</code> attribute contains
+ the URL to link to, and the element data provides the link
+ text.For instance, we can link to the the Boost web site with
+ <code class="computeroutput">&lt;ulink
+ url="http://www.boost.org"&gt;Boost&lt;/ulink&gt;,</code> which
+ appears in the document like this: <a href="http://www.boost.org" target="_top">Boost</a>.</p>
+<p>The &lt;classname&gt;, &lt;functionname&gt;,
+ &lt;methodname&gt;, and &lt;libraryname&gt; link to classes,
+ functions, methods, and libraries, respectively. The text of each
+ element gives both the name of the element to link to and the link
+ text. For instance, we can link to the Function library with
+ <code class="computeroutput">&lt;libraryname&gt;Function&lt;/libraryname&gt;</code>,
+ which results in the following:
+ <a href="../function.html" title="Chapter 4. Boost.Function">Function</a>. In cases where the displayed
+ text is different from the actual name, the <code class="computeroutput">alt</code>
+ attribute can be specified. For instance, the following XML
+ element references the <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>
+ class template but displays the text <code class="computeroutput"><a href="../boost/function.html" title="Class template function">function</a></code>: <code class="computeroutput">&lt;classname
+ alt="boost::function"&gt;function&lt;/classname&gt;</code>.</p>
+</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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sectioning.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../boostbook.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="../reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/c_local_adjustor.html b/doc/html/c_local_adjustor.html
new file mode 100644
index 0000000000..22bd8afb42
--- /dev/null
+++ b/doc/html/c_local_adjustor.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template c_local_adjustor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id793643" title="Header &lt;boost/date_time/c_local_time_adjustor.hpp&gt;">
+<link rel="prev" href="year_functor.html" title="Class template year_functor">
+<link rel="next" href="c_time.html" title="Struct c_time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id793643"><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="c_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="c_local_adjustor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template c_local_adjustor</span></h2>
+<p>boost::date_time::c_local_adjustor &#8212; Adjust to / from utc using the C API. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+<span class="bold"><strong>class</strong></span> c_local_adjustor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type          date_type;         
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type      date_duration_type;
+
+  <span class="emphasis"><em>// <a href="c_local_adjustor.html#id803050-bb">public static functions</a></em></span>
+  <span class="type">time_type</span> <a href="c_local_adjustor.html#id1033637-bb">utc_to_local</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1039315"></a><h2>Description</h2>
+<p>Warning!!! This class assumes that timezone settings of the machine are correct. This can be a very dangerous assumption. </p>
+<div class="refsect2" lang="en">
+<a name="id1039322"></a><h3>
+<a name="id803050-bb"></a><code class="computeroutput">c_local_adjustor</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">time_type</span> <a name="id1033637-bb"></a>utc_to_local(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id793643"><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="c_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/c_time.html b/doc/html/c_time.html
new file mode 100644
index 0000000000..4a8d60deb8
--- /dev/null
+++ b/doc/html/c_time.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct c_time</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1110111" title="Header &lt;boost/date_time/c_time.hpp&gt;">
+<link rel="prev" href="c_local_adjustor.html" title="Class template c_local_adjustor">
+<link rel="next" href="constrained_value.html" title="Class template constrained_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="c_local_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1110111"><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="constrained_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="c_time"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct c_time</span></h2>
+<p>boost::date_time::c_time &#8212; Provides a uniform interface to some 'ctime' functions. </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"><strong>struct</strong></span> c_time {
+
+  <span class="emphasis"><em>// <a href="c_time.html#id870680-bb">public static functions</a></em></span>
+  <span class="type">std::tm *</span> <a href="c_time.html#id838826-bb">localtime</a>(<span class="bold"><strong>const</strong></span> std::time_t *, std::tm *) ;
+  <span class="type">std::tm *</span> <a href="c_time.html#id824932-bb">gmtime</a>(<span class="bold"><strong>const</strong></span> std::time_t *, std::tm *) ;
+  <span class="type">std::tm *</span> <a href="c_time.html#id978325-bb">localtime</a>(<span class="bold"><strong>const</strong></span> std::time_t *, std::tm *) ;
+  <span class="type">std::tm *</span> <a href="c_time.html#id1101341-bb">gmtime</a>(<span class="bold"><strong>const</strong></span> std::time_t *, std::tm *) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1039525"></a><h2>Description</h2>
+<p>Provides a uniform interface to some ctime functions and their '_r' counterparts. The '_r' functions require a pointer to a user created std::tm struct whereas the regular functions use a staticly created struct and return a pointer to that. These wrapper functions require the user to create a std::tm struct and send in a pointer to it. A pointer to the user created struct will be returned. </p>
+<div class="refsect2" lang="en">
+<a name="id1039538"></a><h3>
+<a name="id870680-bb"></a><code class="computeroutput">c_time</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">std::tm *</span> <a name="id838826-bb"></a>localtime(<span class="bold"><strong>const</strong></span> std::time_t * t, std::tm * result) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::tm *</span> <a name="id824932-bb"></a>gmtime(<span class="bold"><strong>const</strong></span> std::time_t * t, std::tm * result) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::tm *</span> <a name="id978325-bb"></a>localtime(<span class="bold"><strong>const</strong></span> std::time_t * t, std::tm * result) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::tm *</span> <a name="id1101341-bb"></a>gmtime(<span class="bold"><strong>const</strong></span> std::time_t * t, std::tm * result) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="c_local_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1110111"><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="constrained_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/call_once.html b/doc/html/call_once.html
new file mode 100644
index 0000000000..a70cb3217a
--- /dev/null
+++ b/doc/html/call_once.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function call_once</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id718104" title="Header &lt;boost/thread/once.hpp&gt;">
+<link rel="prev" href="BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">
+<link rel="next" href="recursive_mutex.html" title="Class recursive_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_ONCE_INIT.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id718104"><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="recursive_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="call_once"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function call_once</span></h2>
+<p>boost::call_once &#8212; The <a href="call_once.html" title="Function call_once">call_once</a> function and
+ <code class="computeroutput">once_flag</code> type (statically initialized to
+ <a href="BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a>) can be used to run a
+ routine exactly once. This can be used to initialize data in a
+ <a href="threads.html#threads.glossary.thread-safe">thread-safe</a>
+ manner.</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">
+ call_once(<span class="bold"><strong>void</strong></span> (*func)() func, once_flag&amp; flag);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1559874"></a><h2>Description</h2>
+<p>Example usage is as follows:</p>
+<pre class="programlisting">//Example usage:
+boost::once_flag once = BOOST_ONCE_INIT;
+
+void init()
+{
+ //...
+}
+
+void thread_proc()
+{
+ boost::call_once(&amp;init, once);
+}</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The function <code class="computeroutput">func</code> shall not throw
+ exceptions.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ As if (in an atomic fashion):
+ <code class="computeroutput">if (flag == BOOST_ONCE_INIT) func();</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">flag != BOOST_ONCE_INIT</code></p>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_ONCE_INIT.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id718104"><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="recursive_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/concepts/reference.html b/doc/html/concepts/reference.html
new file mode 100644
index 0000000000..74940e3af9
--- /dev/null
+++ b/doc/html/concepts/reference.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concept reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="../array/ack.html" title="Acknowledgements">
+<link rel="next" href="../Assignable.html" title="Concept Assignable">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array/ack.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../libraries.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="../Assignable.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title" style="clear: both">
+<a name="concepts.reference"></a>Concept reference</h2></div>
+<div><p class="copyright">Copyright © 2001, 2002 Indiana University</p></div>
+<div><p class="copyright">Copyright © 2000, 2001 University of Notre Dame du Lac</p></div>
+<div><p class="copyright">Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine</p></div>
+<div><p class="copyright">Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc.</p></div>
+<div><p class="copyright">Copyright © 1994 Hewlett-Packard Company</p></div>
+<div><div class="legalnotice">
+<a name="id975197"></a><p>This product includes software developed at the University
+ of Notre Dame and the Pervasive Technology Labs at Indiana
+ University. For technical information contact Andrew Lumsdaine
+ at the Pervasive Technology Labs at Indiana University. For
+ administrative and license questions contact the Advanced
+ Research and Technology Institute at 351 West 10th Street.
+ Indianapolis, Indiana 46202, phone 317-278-4100, fax
+ 317-274-5902.</p>
+<p>Some concepts based on versions from the MTL draft manual
+ and Boost Graph and Property Map documentation, the SGI Standard
+ Template Library documentation and the Hewlett-Packard STL,
+ under the following license:
+ </p>
+<div class="blockquote"><blockquote class="blockquote">Permission to use, copy, modify, distribute and
+ sell this software and its documentation for any purpose is
+ hereby granted without fee, provided that the above copyright
+ notice appears in all copies and that both that copyright
+ notice and this permission notice appear in supporting
+ documentation. Silicon Graphics makes no representations
+ about the suitability of this software for any purpose. It is
+ provided "as is" without express or implied
+ warranty.</blockquote></div>
+</div></div>
+</div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#id975053">Concepts</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id975053"></a>Concepts</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="../Assignable.html" title="Concept Assignable">Assignable</a></li>
+<li><a href="../InputIterator.html" title="Concept InputIterator">InputIterator</a></li>
+<li><a href="../OutputIterator.html" title="Concept OutputIterator">OutputIterator</a></li>
+<li><a href="../ForwardIterator.html" title="Concept ForwardIterator">ForwardIterator</a></li>
+<li><a href="../BidirectionalIterator.html" title="Concept BidirectionalIterator">BidirectionalIterator</a></li>
+<li><a href="../RandomAccessIterator.html" title="Concept RandomAccessIterator">RandomAccessIterator</a></li>
+<li><a href="../DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a></li>
+<li><a href="../CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a></li>
+<li><a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a></li>
+<li><a href="../LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a></li>
+<li><a href="../SignedInteger.html" title="Concept SignedInteger">SignedInteger</a></li>
+</ul></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../array/ack.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../libraries.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="../Assignable.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/condition.html b/doc/html/condition.html
new file mode 100644
index 0000000000..9b4d7c534f
--- /dev/null
+++ b/doc/html/condition.html
@@ -0,0 +1,209 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class condition</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id928670" title="Header &lt;boost/thread/condition.hpp&gt;">
+<link rel="prev" href="barrier.html" title="Class barrier">
+<link rel="next" href="lock_error.html" title="Class lock_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="barrier.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id928670"><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="lock_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="condition"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class condition</span></h2>
+<p>boost::condition &#8212; <p>An object of class <a href="condition.html" title="Class condition">condition</a> is a
+ synchronization primitive used to cause a thread to wait until a
+ particular shared-data condition (or time) is met.</p></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"><strong>class</strong></span> condition : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="condition.html#conditionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="condition.html#id762070-bb">condition</a>();
+  <a href="condition.html#id663126-bb">~condition</a>();
+
+  <span class="emphasis"><em>// <a href="condition.html#id663121-bb">notification</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="condition.html#id1187096-bb">notify_one</a>();
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="condition.html#id731921-bb">notify_all</a>();
+
+  <span class="emphasis"><em>// <a href="condition.html#id1111340-bb">waiting</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="condition.html#id1076467-bb">wait</a>(ScopedLock&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock, <span class="bold"><strong>typename</strong></span> Pred&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="condition.html#id721465-bb">wait</a>(ScopedLock&amp;, Pred);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="condition.html#id1179084-bb">timed_wait</a>(ScopedLock&amp;, <span class="bold"><strong>const</strong></span> <a href="xtime.html" title="Struct xtime">boost::xtime</a>&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock, <span class="bold"><strong>typename</strong></span> Pred&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="condition.html#id1153261-bb">timed_wait</a>(ScopedLock&amp;, Pred);
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1557163"></a><h2>Description</h2>
+<p>A <a href="condition.html" title="Class condition">condition</a> object is always used in
+ conjunction with a <a href="threads/concepts.html#threads.concepts.mutexes" title="Mutexes">mutex</a>
+ object (an object whose type is a model of a <a href="threads/concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> or one of its
+ refinements). The mutex object must be locked prior to waiting on the
+ condition, which is verified by passing a lock object (an object whose
+ type is a model of <a href="threads/concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a> or
+ one of its refinements) to the <a href="condition.html" title="Class condition">condition</a> object's
+ wait functions. Upon blocking on the <a href="condition.html" title="Class condition">condition</a>
+ object, the thread unlocks the mutex object. When the thread returns
+ from a call to one of the <a href="condition.html" title="Class condition">condition</a> object's wait
+ functions the mutex object is again locked. The tricky unlock/lock
+ sequence is performed automatically by the
+ <a href="condition.html" title="Class condition">condition</a> object's wait functions.</p>
+<p>The <a href="condition.html" title="Class condition">condition</a> type is often used to
+ implement the Monitor Object and other important patterns (see
+ and ). Monitors are one
+ of the most important patterns for creating reliable multithreaded
+ programs.</p>
+<p>See <a href="threads.html#threads.glossary" title="Glossary">Glossary</a> for definitions of <a href="threads.html#threads.glossary.thread-state">thread states</a>
+ blocked and ready. Note that "waiting" is a synonym for blocked.</p>
+<div class="refsect2" lang="en">
+<a name="id1557267"></a><h3>
+<a name="conditionconstruct-copy-destruct"></a><code class="computeroutput">condition</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id762070-bb"></a>condition();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="condition.html" title="Class condition">condition</a>
+ object.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id663126-bb"></a>~condition();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys <code class="computeroutput">*this</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1557346"></a><h3>
+<a name="id663121-bb"></a><code class="computeroutput">condition</code> notification</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1187096-bb"></a>notify_one();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If there is a thread waiting on <code class="computeroutput">*this</code>,
+ change that thread's state to ready. Otherwise there is no
+ effect.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ If more than one thread is waiting on <code class="computeroutput">*this</code>,
+ it is unspecified which is made ready. After returning to a ready
+ state the notified thread must still acquire the mutex again (which
+ occurs within the call to one of the <a href="condition.html" title="Class condition">condition</a>
+ object's wait functions.)</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id731921-bb"></a>notify_all();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Change the state of all threads waiting on
+ <code class="computeroutput">*this</code> to ready. If there are no waiting threads,
+ <code class="computeroutput">notify_all()</code> has no effect.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1557470"></a><h3>
+<a name="id1111340-bb"></a><code class="computeroutput">condition</code> waiting</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1076467-bb"></a>wait(ScopedLock&amp; lock);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">ScopedLock</code> meets the <a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Releases the lock on the <a href="threads/concepts.html#threads.concepts.mutexes" title="Mutexes">mutex object</a>
+ associated with <code class="computeroutput">lock</code>, blocks the current thread of execution
+ until readied by a call to <code class="computeroutput">this-&gt;notify_one()</code>
+ or<code class="computeroutput"> this-&gt;notify_all()</code>, and then reacquires the
+ lock.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="lock_error.html" title="Class lock_error">lock_error</a> if
+ <code class="computeroutput">!lock.locked()</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock, <span class="bold"><strong>typename</strong></span> Pred&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id721465-bb"></a>wait(ScopedLock&amp; lock, Pred pred);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">ScopedLock</code> meets the <a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements and the return from <code class="computeroutput">pred()</code> is
+ convertible to <code class="computeroutput">bool</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ As if: <code class="computeroutput">while (!pred())
+ wait(lock)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="lock_error.html" title="Class lock_error">lock_error</a> if
+ <code class="computeroutput">!lock.locked()</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1179084-bb"></a>timed_wait(ScopedLock&amp; lock, <span class="bold"><strong>const</strong></span> <a href="xtime.html" title="Struct xtime">boost::xtime</a>&amp; xt);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">ScopedLock</code> meets the <a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Releases the lock on the <a href="threads/concepts.html#threads.concepts.mutexes" title="Mutexes">mutex object</a>
+ associated with <code class="computeroutput">lock</code>, blocks the current thread of execution
+ until readied by a call to <code class="computeroutput">this-&gt;notify_one()</code>
+ or<code class="computeroutput"> this-&gt;notify_all()</code>, or until time <code class="computeroutput">xt</code>
+ is reached, and then reacquires the lock.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code> if time <code class="computeroutput">xt</code> is reached,
+ otherwise <code class="computeroutput">true</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="lock_error.html" title="Class lock_error">lock_error</a> if
+ <code class="computeroutput">!lock.locked()</code></p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ScopedLock, <span class="bold"><strong>typename</strong></span> Pred&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1153261-bb"></a>timed_wait(ScopedLock&amp; lock, Pred pred);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">ScopedLock</code> meets the <a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements and the return from <code class="computeroutput">pred()</code> is
+ convertible to <code class="computeroutput">bool</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ As if: <code class="computeroutput">while (!pred()) { if (!timed_wait(lock,
+ xt)) return false; } return true;</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code> if <code class="computeroutput">xt</code> is reached,
+ otherwise <code class="computeroutput">true</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="lock_error.html" title="Class lock_error">lock_error</a> if
+ <code class="computeroutput">!lock.locked()</code></p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="barrier.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id928670"><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="lock_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/connection.html b/doc/html/connection.html
new file mode 100644
index 0000000000..40250edd43
--- /dev/null
+++ b/doc/html/connection.html
@@ -0,0 +1,237 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class connection</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id1188227" title="Header &lt;boost/signals/connection.hpp&gt;">
+<link rel="prev" href="trackable.html" title="Class trackable">
+<link rel="next" href="scoped_connection.html" title="Class scoped_connection">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trackable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1188227"><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="scoped_connection.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="connection"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class connection</span></h2>
+<p>boost::signals::connection &#8212; Query/disconnect a signal-slot connection.</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"><strong>class</strong></span> connection {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="connection.html#connectionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="connection.html#id978587-bb">connection</a>();
+  <a href="connection.html#id690092-bb">connection</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;);
+  connection&amp; <a href="connection.html#id682031-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;);
+
+  <span class="emphasis"><em>// <a href="connection.html#id869614-bb">connection management</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="connection.html#id696947-bb">disconnect</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="connection.html#id727081-bb">connected</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="connection.html#id791643-bb">blocking</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="connection.html#id933457-bb">block</a>(<span class="bold"><strong>bool</strong></span> = true);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="connection.html#id653784-bb">unblock</a>();
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="connection.html#id800847-bb">blocked</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="connection.html#id717110-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="connection.html#id1005820-bb">swap</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;);
+
+  <span class="emphasis"><em>// <a href="connection.html#id1176481-bb">comparisons</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="connection.html#id1212900-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="connection.html#id720993-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;) <span class="bold"><strong>const</strong></span>;
+};
+
+<span class="emphasis"><em>// <a href="connection.html#id730226-bb">specialized algorithms</a></em></span>
+<span class="type"><span class="bold"><strong>void</strong></span></span> <a href="connection.html#id764168">swap</a>(<a href="connection.html" title="Class connection">connection</a>&amp;, <a href="connection.html" title="Class connection">connection</a>&amp;);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1285251"></a><h2>Description</h2>
+<p>The <a href="connection.html" title="Class connection">connection</a> class represents
+ a connection between a Signal and a Slot. It is a
+ lightweight object that has the ability to query whether the
+ signal and slot are currently connected, and to disconnect
+ the signal and slot. It is always safe to query or
+ disconnect a connection.</p>
+<div class="refsect2" lang="en">
+<a name="id1285269"></a><h3>
+<a name="connectionconstruct-copy-destruct"></a><code class="computeroutput">connection</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id978587-bb"></a>connection();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Sets the currently represented connection to the
+ NULL connection.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">!this-&gt;<a href="connection.html#id727081-bb">connected</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id690092-bb"></a>connection(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">this</code> references
+ the connection referenced by
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout">connection&amp; <a name="id682031-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">this</code> references
+ the connection referenced by
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1285453"></a><h3>
+<a name="id869614-bb"></a><code class="computeroutput">connection</code> connection management</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id696947-bb"></a>disconnect() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If
+ <code class="computeroutput">this-&gt;<a href="connection.html#id727081-bb">connected</a>()</code>,
+ disconnects the signal and slot referenced by this;
+ otherwise, this operation is a no-op.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">!this-&gt;<a href="connection.html#id727081-bb">connected</a>()</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id727081-bb"></a>connected() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if this
+ references a non-NULL connection that is still active
+ (connected), and <code class="computeroutput">false</code>
+ otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1285595"></a><h3>
+<a name="id791643-bb"></a><code class="computeroutput">connection</code> blocking</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id933457-bb"></a>block(<span class="bold"><strong>bool</strong></span> should_block = true);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">connected()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">blocked() == should_block</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id653784-bb"></a>unblock();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">connected()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">!blocked()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id800847-bb"></a>blocked() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if the associated slot is either disconnected or blocked, <code class="computeroutput">false</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1285773"></a><h3>
+<a name="id717110-bb"></a><code class="computeroutput">connection</code> modifiers</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1005820-bb"></a>swap(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Swaps the connections referenced in
+ <code class="computeroutput">this</code> and
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1285854"></a><h3>
+<a name="id1176481-bb"></a><code class="computeroutput">connection</code> comparisons</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1212900-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if
+ <code class="computeroutput">this</code> and
+ <code class="computeroutput">other</code> reference the same
+ connection or both reference the NULL connection, and
+ <code class="computeroutput">false</code>
+ otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id720993-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if the
+ connection referenced by
+ <code class="computeroutput">this</code> precedes the
+ connection referenced by
+ <code class="computeroutput">other</code> based on some
+ unspecified ordering, and
+ <code class="computeroutput">false</code>
+ otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1286041"></a><h3>
+<a name="id730226-bb"></a><code class="computeroutput">connection</code> specialized algorithms</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id764168"></a>swap(<a href="connection.html" title="Class connection">connection</a>&amp; x, <a href="connection.html" title="Class connection">connection</a>&amp; y);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">x.swap(y)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trackable.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1188227"><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="scoped_connection.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/const_formatter.html b/doc/html/const_formatter.html
new file mode 100644
index 0000000000..0a18ae0c51
--- /dev/null
+++ b/doc/html/const_formatter.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template const_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1213774" title="Header &lt;boost/algorithm/string/formatter.hpp&gt;">
+<link rel="prev" href="range_finder.html" title="Function range_finder">
+<link rel="next" href="identity_formatter.html" title="Function template identity_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="range_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="identity_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="const_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template const_formatter</span></h2>
+<p>boost::algorithm::const_formatter &#8212; Constant formatter. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> const_formatter(<span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325614"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">const_formatter</code> . Const formatter always returns the same value, regardless of the parameter.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A predefined value used as a result for formating </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">const_formatter</code> object. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="range_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="identity_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/constrained_value.html b/doc/html/constrained_value.html
new file mode 100644
index 0000000000..df868ce0c2
--- /dev/null
+++ b/doc/html/constrained_value.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template constrained_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id860535" title="Header &lt;boost/date_time/constrained_value.hpp&gt;">
+<link rel="prev" href="c_time.html" title="Struct c_time">
+<link rel="next" href="simple_exception_policy.html" title="Class template simple_exception_policy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="c_time.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id860535"><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="simple_exception_policy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="constrained_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template constrained_value</span></h2>
+<p>boost::CV::constrained_value &#8212; A template to specify a constrained basic value type. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> value_policies&gt;
+<span class="bold"><strong>class</strong></span> constrained_value {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> value_policies::value_type value_type;
+
+  <span class="emphasis"><em>// <a href="constrained_value.html#constrained_valueconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="constrained_value.html#id698806-bb">constrained_value</a>(value_type);
+  constrained_value&amp; <a href="constrained_value.html#id1001127-bb"><span class="bold"><strong>operator</strong></span>=</a>(value_type);
+
+  <span class="emphasis"><em>// <a href="constrained_value.html#id895089-bb">public member functions</a></em></span>
+  <a href="constrained_value.html#id1076917-bb"><span class="bold"><strong>operator</strong></span> value_type</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="constrained_value.html#id838318-bb">public static functions</a></em></span>
+  <span class="type">value_type max</span> <a href="constrained_value.html#id1000197-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+  <span class="type">value_type min</span> <a href="constrained_value.html#id859786-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+
+  <span class="emphasis"><em>// <a href="constrained_value.html#id1047030-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="constrained_value.html#id834361-bb">assign</a>(value_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1039962"></a><h2>Description</h2>
+<p>This template provides a quick way to generate an integer type with a constrained range. The type provides for the ability to specify the min, max, and and error handling policy.</p>
+<p><span class="bold"><strong>value policies</strong></span> A class that provides the range limits via the min and max functions as well as a function on_error that determines how errors are handled. A common strategy would be to assert or throw and exception. The on_error is passed both the current value and the new value that is in error. </p>
+<div class="refsect2" lang="en">
+<a name="id1039982"></a><h3>
+<a name="constrained_valueconstruct-copy-destruct"></a><code class="computeroutput">constrained_value</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id698806-bb"></a>constrained_value(value_type value);</pre></li>
+<li><pre class="literallayout">constrained_value&amp; <a name="id1001127-bb"></a><span class="bold"><strong>operator</strong></span>=(value_type v);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1040037"></a><h3>
+<a name="id895089-bb"></a><code class="computeroutput">constrained_value</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1076917-bb"></a><span class="bold"><strong>operator</strong></span> value_type() <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1040078"></a><h3>
+<a name="id838318-bb"></a><code class="computeroutput">constrained_value</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">value_type max</span> <a name="id1000197-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+<li><pre class="literallayout"><span class="type">value_type min</span> <a name="id859786-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1040133"></a><h3>
+<a name="id1047030-bb"></a><code class="computeroutput">constrained_value</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id834361-bb"></a>assign(value_type value) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="c_time.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id860535"><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="simple_exception_policy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/contains.html b/doc/html/contains.html
new file mode 100644
index 0000000000..6007400e3b
--- /dev/null
+++ b/doc/html/contains.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function contains</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="iends_with.html" title="Function template iends_with">
+<link rel="next" href="icontains.html" title="Function template icontains">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iends_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="icontains.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="contains"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function contains</span></h2>
+<p>boost::algorithm::contains &#8212; 'Contains' predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> contains(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test, PredicateT Comp);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> contains(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1327146"></a><h2>Description</h2>
+<p>This predicate holds when the test container is contained in the Input. When the optional predicate is specified, it is used for character-wise comparison.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Comp</span></dt>
+<dd><p>An element comparison predicate </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iends_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="icontains.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/convert_string_type.html b/doc/html/convert_string_type.html
new file mode 100644
index 0000000000..df6182ee03
--- /dev/null
+++ b/doc/html/convert_string_type.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template convert_string_type</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id794691" title="Header &lt;boost/date_time/string_convert.hpp&gt;">
+<link rel="prev" href="special_values_parser.html" title="Class template special_values_parser">
+<link rel="next" href="parse_match_result.html" title="Struct template parse_match_result">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_values_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id794691"><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="parse_match_result.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="convert_string_type"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template convert_string_type</span></h2>
+<p>boost::date_time::convert_string_type &#8212; Converts a string from one value_type to another. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> InputT, <span class="bold"><strong>typename</strong></span> OutputT&gt;
+  <span class="type">std::basic_string&lt; OutputT &gt;</span>
+  convert_string_type(<span class="bold"><strong>const</strong></span> std::basic_string&lt; InputT &gt; &amp; inp_str);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1115396"></a><h2>Description</h2>
+<p>Converts a wstring to a string (or a string to wstring). If both template parameters are of same type, a copy of the input string is returned. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_values_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id794691"><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="parse_match_result.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/counted_time_rep.html b/doc/html/counted_time_rep.html
new file mode 100644
index 0000000000..e37d9d1241
--- /dev/null
+++ b/doc/html/counted_time_rep.html
@@ -0,0 +1,105 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template counted_time_rep</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id822688" title="Header &lt;boost/date_time/time_system_counted.hpp&gt;">
+<link rel="prev" href="time_resolution_traits.html" title="Class template time_resolution_traits">
+<link rel="next" href="counted_time_system.html" title="Class template counted_time_system">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_resolution_traits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id822688"><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="counted_time_system.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="counted_time_rep"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template counted_time_rep</span></h2>
+<p>boost::date_time::counted_time_rep &#8212; Time representation that uses a single integer count. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> config&gt;
+<span class="bold"><strong>struct</strong></span> counted_time_rep {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> config::int_type           int_type;          
+  <span class="bold"><strong>typedef</strong></span> config::date_type          date_type;         
+  <span class="bold"><strong>typedef</strong></span> config::impl_type          impl_type;         
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type   date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type   calendar_type;     
+  <span class="bold"><strong>typedef</strong></span> date_type::ymd_type        ymd_type;          
+  <span class="bold"><strong>typedef</strong></span> config::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> config::resolution_traits  resolution_traits; 
+
+  <span class="emphasis"><em>// <a href="counted_time_rep.html#counted_time_repconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="counted_time_rep.html#id829122-bb">counted_time_rep</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;);
+  <a href="counted_time_rep.html#id829148-bb">counted_time_rep</a>(int_type);
+  <a href="counted_time_rep.html#id829162-bb">counted_time_rep</a>(impl_type);
+
+  <span class="emphasis"><em>// <a href="counted_time_rep.html#id858449-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="counted_time_rep.html#id858455-bb">date</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a href="counted_time_rep.html#id858468-bb">day_count</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">int_type</span> <a href="counted_time_rep.html#id731497-bb">time_count</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">int_type</span> <a href="counted_time_rep.html#id860416-bb">tod</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_rep.html#id860429-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_rep.html#id860442-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_rep.html#id857858-bb">is_not_a_date_time</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_rep.html#id829096-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">impl_type</span> <a href="counted_time_rep.html#id829108-bb">get_rep</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="counted_time_rep.html#id829177-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="counted_time_rep.html#id829182-bb">frac_sec_per_day</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1143343"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1143347"></a><h3>
+<a name="counted_time_repconstruct-copy-destruct"></a><code class="computeroutput">counted_time_rep</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id829122-bb"></a>counted_time_rep(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> time_duration_type &amp; tod);</pre></li>
+<li><pre class="literallayout"><a name="id829148-bb"></a>counted_time_rep(int_type count);</pre></li>
+<li><pre class="literallayout"><a name="id829162-bb"></a>counted_time_rep(impl_type count);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1143422"></a><h3>
+<a name="id858449-bb"></a><code class="computeroutput">counted_time_rep</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id858455-bb"></a>date() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a name="id858468-bb"></a>day_count() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id731497-bb"></a>time_count() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id860416-bb"></a>tod() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id860429-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id860442-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id857858-bb"></a>is_not_a_date_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id829096-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">impl_type</span> <a name="id829108-bb"></a>get_rep() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1143664"></a><h3>
+<a name="id829177-bb"></a><code class="computeroutput">counted_time_rep</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">int_type</span> <a name="id829182-bb"></a>frac_sec_per_day() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_resolution_traits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id822688"><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="counted_time_system.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/counted_time_system.html b/doc/html/counted_time_system.html
new file mode 100644
index 0000000000..d7048753eb
--- /dev/null
+++ b/doc/html/counted_time_system.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template counted_time_system</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id822688" title="Header &lt;boost/date_time/time_system_counted.hpp&gt;">
+<link rel="prev" href="counted_time_rep.html" title="Struct template counted_time_rep">
+<link rel="next" href="split_timedate_system.html" title="Class template split_timedate_system">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="counted_time_rep.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id822688"><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="split_timedate_system.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="counted_time_system"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template counted_time_system</span></h2>
+<p>boost::date_time::counted_time_system &#8212; An unadjusted time system implementation. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_rep&gt;
+<span class="bold"><strong>class</strong></span> counted_time_system {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_rep                                    time_rep_type;          
+  <span class="bold"><strong>typedef</strong></span> time_rep_type::impl_type                    impl_type;              
+  <span class="bold"><strong>typedef</strong></span> time_rep_type::time_duration_type           time_duration_type;     
+  <span class="bold"><strong>typedef</strong></span> time_duration_type::fractional_seconds_type fractional_seconds_type;
+  <span class="bold"><strong>typedef</strong></span> time_rep_type::date_type                    date_type;              
+  <span class="bold"><strong>typedef</strong></span> time_rep_type::date_duration_type           date_duration_type;     
+
+  <span class="emphasis"><em>// <a href="counted_time_system.html#id796376-bb">public static functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="counted_time_system.html#id796382-bb">unused_var</a>(<span class="bold"><strong>const</strong></span> T &amp;) ;
+  <span class="type">time_rep_type</span>
+  <a href="counted_time_system.html#id828675-bb">get_time_rep</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               date_time::dst_flags = not_dst) ;
+  <span class="type">time_rep_type</span> <a href="counted_time_system.html#id873411-bb">get_time_rep</a>(special_values) ;
+  <span class="type">date_type</span> <a href="counted_time_system.html#id873434-bb">get_date</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">time_duration_type</span> <a href="counted_time_system.html#id873458-bb">get_time_of_day</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">std::string</span> <a href="counted_time_system.html#id873482-bb">zone_name</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_system.html#id873506-bb">is_equal</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="counted_time_system.html#id873540-bb">is_less</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">time_rep_type</span> <a href="counted_time_system.html#id695571-bb">add_days</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_rep_type</span>
+  <a href="counted_time_system.html#id834444-bb">subtract_days</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_rep_type</span>
+  <a href="counted_time_system.html#id836570-bb">subtract_time_duration</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_rep_type</span> <a href="counted_time_system.html#id836605-bb">add_time_duration</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, time_duration_type) ;
+  <span class="type">time_duration_type</span>
+  <a href="counted_time_system.html#id865562-bb">subtract_times</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1144106"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1144109"></a><h3>
+<a name="id796376-bb"></a><code class="computeroutput">counted_time_system</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id796382-bb"></a>unused_var(<span class="bold"><strong>const</strong></span> T &amp; ) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id828675-bb"></a>get_time_rep(<span class="bold"><strong>const</strong></span> date_type &amp; day, <span class="bold"><strong>const</strong></span> time_duration_type &amp; tod,
+             date_time::dst_flags dst = not_dst) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span> <a name="id873411-bb"></a>get_time_rep(special_values sv) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id873434-bb"></a>get_date(<span class="bold"><strong>const</strong></span> time_rep_type &amp; val) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id873458-bb"></a>get_time_of_day(<span class="bold"><strong>const</strong></span> time_rep_type &amp; val) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id873482-bb"></a>zone_name(<span class="bold"><strong>const</strong></span> time_rep_type &amp; ) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id873506-bb"></a>is_equal(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id873540-bb"></a>is_less(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id695571-bb"></a>add_days(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, <span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id834444-bb"></a>subtract_days(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, <span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id836570-bb"></a>subtract_time_duration(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base,
+                       <span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id836605-bb"></a>add_time_duration(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, time_duration_type td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span>
+<a name="id865562-bb"></a>subtract_times(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="counted_time_rep.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id822688"><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="split_timedate_system.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/custom_time_zone.html b/doc/html/custom_time_zone.html
new file mode 100644
index 0000000000..02c493ec37
--- /dev/null
+++ b/doc/html/custom_time_zone.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class custom_time_zone</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id800906" title="Header &lt;boost/date_time/local_time/custom_time_zone.hpp&gt;">
+<link rel="prev" href="duration_from_string.html" title="Function duration_from_string">
+<link rel="next" href="id858004.html" title="Function operator+">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_from_string.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id800906"><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="id858004.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="custom_time_zone"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class custom_time_zone</span></h2>
+<p>boost::local_time::custom_time_zone &#8212; A real time zone. </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"><strong>class</strong></span> custom_time_zone : <span class="bold"><strong>public</strong></span> boost::local_time::time_zone {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::posix_time::time_duration time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="time_zone.html" title="Class time_zone">time_zone</a>                        base_type;         
+  <span class="bold"><strong>typedef</strong></span> base_type::string_type           string_type;       
+  <span class="bold"><strong>typedef</strong></span> base_type::stringstream_type     stringstream_type; 
+
+  <span class="emphasis"><em>// <a href="custom_time_zone.html#custom_time_zoneconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="custom_time_zone.html#id892334-bb">custom_time_zone</a>(<span class="bold"><strong>const</strong></span> time_zone_names &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+                   <span class="bold"><strong>const</strong></span> dst_adjustment_offsets &amp;,
+                   boost::shared_ptr&lt; dst_calc_rule &gt;);
+  <a href="custom_time_zone.html#id795340-bb">~custom_time_zone</a>();
+
+  <span class="emphasis"><em>// <a href="custom_time_zone.html#id1001239-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="custom_time_zone.html#id978174-bb">dst_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="custom_time_zone.html#id868352-bb">std_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="custom_time_zone.html#id1078338-bb">dst_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="custom_time_zone.html#id966765-bb">std_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="custom_time_zone.html#id725056-bb">has_dst</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="custom_time_zone.html#id1035736-bb">dst_local_start_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="custom_time_zone.html#id838197-bb">dst_local_end_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="custom_time_zone.html#id905938-bb">base_utc_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="custom_time_zone.html#id898840-bb">dst_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="custom_time_zone.html#id1045098-bb">to_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1179457"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1179460"></a><h3>
+<a name="custom_time_zoneconstruct-copy-destruct"></a><code class="computeroutput">custom_time_zone</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id892334-bb"></a>custom_time_zone(<span class="bold"><strong>const</strong></span> time_zone_names &amp; zone_names,
+                 <span class="bold"><strong>const</strong></span> time_duration_type &amp; base_utc_offset,
+                 <span class="bold"><strong>const</strong></span> dst_adjustment_offsets &amp; dst_offset,
+                 boost::shared_ptr&lt; dst_calc_rule &gt; calc_rule);</pre></li>
+<li><pre class="literallayout"><a name="id795340-bb"></a>~custom_time_zone();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1179532"></a><h3>
+<a name="id1001239-bb"></a><code class="computeroutput">custom_time_zone</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id978174-bb"></a>dst_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id868352-bb"></a>std_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1078338-bb"></a>dst_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id966765-bb"></a>std_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id725056-bb"></a>has_dst() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id1035736-bb"></a>dst_local_start_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id838197-bb"></a>dst_local_end_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id905938-bb"></a>base_utc_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id898840-bb"></a>dst_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id1045098-bb"></a>to_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_from_string.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id800906"><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="id858004.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/data_not_accessible.html b/doc/html/data_not_accessible.html
new file mode 100644
index 0000000000..6039a46a71
--- /dev/null
+++ b/doc/html/data_not_accessible.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct data_not_accessible</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1034888" title="Header &lt;boost/date_time/tz_db_base.hpp&gt;">
+<link rel="prev" href="time_zone_names_base.html" title="Class template time_zone_names_base">
+<link rel="next" href="bad_field_count.html" title="Struct bad_field_count">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone_names_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="bad_field_count.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="data_not_accessible"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct data_not_accessible</span></h2>
+<p>boost::date_time::data_not_accessible &#8212; </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"><strong>struct</strong></span> data_not_accessible {
+  <span class="emphasis"><em>// <a href="data_not_accessible.html#data_not_accessibleconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="data_not_accessible.html#id940721-bb">data_not_accessible</a>();
+  <a href="data_not_accessible.html#id940724-bb">data_not_accessible</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="data_not_accessible.html#id1034909-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1146974"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1146977"></a><h3>
+<a name="data_not_accessibleconstruct-copy-destruct"></a><code class="computeroutput">data_not_accessible</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id940721-bb"></a>data_not_accessible();</pre></li>
+<li><pre class="literallayout"><a name="id940724-bb"></a>data_not_accessible(<span class="bold"><strong>const</strong></span> std::string &amp; filespec);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1147031"></a><h3>
+<a name="id1034909-bb"></a><code class="computeroutput">data_not_accessible</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone_names_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="bad_field_count.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_duration.html b/doc/html/date_duration.html
new file mode 100644
index 0000000000..507868b619
--- /dev/null
+++ b/doc/html/date_duration.html
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id729918" title="Header &lt;boost/date_time/date_duration.hpp&gt;">
+<link rel="prev" href="day_clock.html" title="Class template day_clock">
+<link rel="next" href="duration_traits_long.html" title="Struct duration_traits_long">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="duration_traits_long.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_duration"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_duration</span></h2>
+<p>boost::date_time::date_duration &#8212; Duration type with date level resolution. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> duration_rep_traits&gt;
+<span class="bold"><strong>class</strong></span> date_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> duration_rep_traits::int_type  duration_rep_type;
+  <span class="bold"><strong>typedef</strong></span> duration_rep_traits::impl_type duration_rep;     
+
+  <span class="emphasis"><em>// <a href="date_duration.html#date_durationconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_duration.html#id1070952-bb">date_duration</a>(duration_rep);
+  <a href="date_duration.html#id972807-bb">date_duration</a>(special_values);
+  <a href="date_duration.html#id966743-bb">date_duration</a>(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt; &amp;);
+
+  <span class="emphasis"><em>// <a href="date_duration.html#id933689-bb">public member functions</a></em></span>
+  <span class="type">duration_rep</span> <a href="date_duration.html#id892412-bb">get_rep</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_duration.html#id861103-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_rep_type</span> <a href="date_duration.html#id1079817-bb">days</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_duration.html#id1110363-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_duration.html#id865224-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a href="date_duration.html#id798510-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp;) ;
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a href="date_duration.html#id828778-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp;) ;
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a href="date_duration.html#id835384-bb"><span class="bold"><strong>operator</strong></span>-</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt;</span> <a href="date_duration.html#id1109017-bb"><span class="bold"><strong>operator</strong></span>/=</a>(<span class="bold"><strong>int</strong></span>) ;
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt;</span> <a href="date_duration.html#id904549-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>int</strong></span>) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_duration.html#id967429-bb">is_negative</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="date_duration.html#id1074914-bb">public static functions</a></em></span>
+  <span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a href="date_duration.html#id1031300-bb">unit</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1042675"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1042679"></a><h3>
+<a name="date_durationconstruct-copy-destruct"></a><code class="computeroutput">date_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1070952-bb"></a>date_duration(duration_rep day_count);</pre></li>
+<li>
+<pre class="literallayout"><a name="id972807-bb"></a>date_duration(special_values sv);</pre>
+<p>construct from special_values - only works when instantiated with duration_traits_adapted </p>
+</li>
+<li><pre class="literallayout"><a name="id966743-bb"></a>date_duration(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt; &amp; other);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1042758"></a><h3>
+<a name="id933689-bb"></a><code class="computeroutput">date_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_rep</span> <a name="id892412-bb"></a>get_rep() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id861103-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_rep_type</span> <a name="id1079817-bb"></a>days() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1110363-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id865224-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a name="id798510-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a name="id828778-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> <a href="date_duration.html" title="Class template date_duration">date_duration</a> &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a name="id835384-bb"></a><span class="bold"><strong>operator</strong></span>-() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt;</span> <a name="id1109017-bb"></a><span class="bold"><strong>operator</strong></span>/=(<span class="bold"><strong>int</strong></span> divisor) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a>&lt; duration_rep_traits &gt;</span> <a name="id904549-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>int</strong></span> divisor) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id967429-bb"></a>is_negative() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1043132"></a><h3>
+<a name="id1074914-bb"></a><code class="computeroutput">date_duration</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><a href="date_duration.html" title="Class template date_duration">date_duration</a></span> <a name="id1031300-bb"></a>unit() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="duration_traits_long.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_facet.html b/doc/html/date_facet.html
new file mode 100644
index 0000000000..b156172185
--- /dev/null
+++ b/doc/html/date_facet.html
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_facet</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id857461" title="Header &lt;boost/date_time/date_facet.hpp&gt;">
+<link rel="prev" href="years_duration.html" title="Class template years_duration">
+<link rel="next" href="date_input_facet.html" title="Class template date_input_facet">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="years_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id857461"><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="date_input_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_facet"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_facet</span></h2>
+<p>boost::date_time::date_facet &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> date_facet {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type                             duration_type;                
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type                          day_of_week_type;             
+  <span class="bold"><strong>typedef</strong></span> date_type::day_type                                  day_type;                     
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                                month_type;                   
+  <span class="bold"><strong>typedef</strong></span> <a href="period.html" title="Class template period">boost::date_time::period</a>&lt; date_type, duration_type &gt; period_type;                  
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt;                           string_type;                  
+  <span class="bold"><strong>typedef</strong></span> CharT                                                char_type;                    
+  <span class="bold"><strong>typedef</strong></span> <a href="period_formatter.html" title="Class template period_formatter">boost::date_time::period_formatter</a>&lt; CharT &gt;          period_formatter_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="special_values_formatter.html" title="Class template special_values_formatter">boost::date_time::special_values_formatter</a>&lt; CharT &gt;  special_values_formatter_type;
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; CharT &gt; &gt;            input_collection_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="date_generator_formatter.html" title="Class template date_generator_formatter">date_generator_formatter</a>&lt; date_type, CharT &gt;         date_gen_formatter_type;      
+  <span class="bold"><strong>typedef</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a>&lt; date_type &gt;                            partial_date_type;            
+  <span class="bold"><strong>typedef</strong></span> <a href="nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>&lt; date_type &gt;                       nth_kday_type;                
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>&lt; date_type &gt;                     first_kday_type;              
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>&lt; date_type &gt;                      last_kday_type;               
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>&lt; date_type &gt;                        kday_after_type;              
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>&lt; date_type &gt;                       kday_before_type;             
+
+  <span class="emphasis"><em>// <a href="date_facet.html#date_facetconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_facet.html#id967360-bb">date_facet</a>(::size_t = 0);
+  <a href="date_facet.html#id1039610-bb">date_facet</a>(<span class="bold"><strong>const</strong></span> char_type *, <span class="bold"><strong>const</strong></span> input_collection_type &amp;, ::size_t = 0);
+  <a href="date_facet.html#id869356-bb">date_facet</a>(<span class="bold"><strong>const</strong></span> char_type *,
+             period_formatter_type = period_formatter_type(),
+             special_values_formatter_type = special_values_formatter_type(),
+             date_gen_formatter_type = date_gen_formatter_type(),
+             ::size_t = 0);
+
+  <span class="emphasis"><em>// <a href="date_facet.html#id897933-bb">public member functions</a></em></span>
+  <span class="type">std::locale::id &amp;</span> <a href="date_facet.html#id897937-bb">__get_id</a>(<span class="bold"><strong>void</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id869526-bb">format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id906883-bb">set_iso_format</a>() ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id907268-bb">set_iso_extended_format</a>() ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id872766-bb">month_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id1044507-bb">weekday_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id962091-bb">period_formatter</a>(period_formatter_type) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id963794-bb">special_values_formatter</a>(<span class="bold"><strong>const</strong></span> special_values_formatter_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id836876-bb">short_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id1039848-bb">long_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id827403-bb">short_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id793189-bb">long_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_facet.html#id859844-bb">date_gen_phrase_strings</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;,
+                               <span class="bold"><strong>typename</strong></span> date_gen_formatter_type::phrase_elements = date_gen_formatter_type::first) ;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id999944-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id793092-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id801516-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> month_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id1000529-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> day_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id901461-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> day_of_week_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id968197-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> period_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id961992-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> partial_date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id894202-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> nth_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id1110250-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> first_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id1076184-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> last_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id1002714-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> kday_before_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="date_facet.html#id931184-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> kday_after_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="date_facet.html#id1101353-bb">protected member functions</a></em></span>
+  <span class="type">tm</span> <a href="date_facet.html#id972887-bb">init_tm</a>(tm &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> OutItrT</span>
+  <a href="date_facet.html#id1078611-bb">do_put_special</a>(OutItrT, std::ios_base &amp;, char_type,
+                 <span class="bold"><strong>const</strong></span> boost::date_time::special_values) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> OutItrT</span>
+  <a href="date_facet.html#id961546-bb">do_put_tm</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> tm &amp;, string_type) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type long_weekday_format;
+  <span class="bold"><strong>static</strong></span> const char_type short_weekday_format;
+  <span class="bold"><strong>static</strong></span> const char_type long_month_format;
+  <span class="bold"><strong>static</strong></span> const char_type short_month_format;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_separator;
+  <span class="bold"><strong>static</strong></span> const char_type standard_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type iso_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type iso_format_extended_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type default_date_format;
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1047031"></a><h2>Description</h2>
+<p>Class that provides format based I/O facet for date types.</p>
+<p>This class allows the formatting of dates by using format string. Format strings are:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>A =&gt; long_weekday_format - Full name Ex: Tuesday</p></li>
+<li><p>a =&gt; short_weekday_format - Three letter abbreviation Ex: Tue</p></li>
+<li><p>B =&gt; long_month_format - Full name Ex: October</p></li>
+<li><p>b =&gt; short_month_format - Three letter abbreviation Ex: Oct</p></li>
+<li><p>x =&gt; standard_format_specifier - defined by the locale</p></li>
+<li><p>Y-%b-%d =&gt; default_date_format - YYYY-Mon-dd</p></li>
+</ul></div>
+<p>Default month format == b Default weekday format == a </p>
+<div class="refsect2" lang="en">
+<a name="id1047079"></a><h3>
+<a name="date_facetconstruct-copy-destruct"></a><code class="computeroutput">date_facet</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id967360-bb"></a>date_facet(::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id1039610-bb"></a>date_facet(<span class="bold"><strong>const</strong></span> char_type * format,
+           <span class="bold"><strong>const</strong></span> input_collection_type &amp; short_month_names,
+           ::size_t ref_count = 0);</pre></li>
+<li><pre class="literallayout"><a name="id869356-bb"></a>date_facet(<span class="bold"><strong>const</strong></span> char_type * format,
+           period_formatter_type period_formatter = period_formatter_type(),
+           special_values_formatter_type special_values_formatter = special_values_formatter_type(),
+           date_gen_formatter_type dg_formatter = date_gen_formatter_type(),
+           ::size_t ref_count = 0);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1047159"></a><h3>
+<a name="id897933-bb"></a><code class="computeroutput">date_facet</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">std::locale::id &amp;</span> <a name="id897937-bb"></a>__get_id(<span class="bold"><strong>void</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id869526-bb"></a>format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id906883-bb"></a>set_iso_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id907268-bb"></a>set_iso_extended_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id872766-bb"></a>month_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1044507-bb"></a>weekday_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id962091-bb"></a>period_formatter(period_formatter_type period_formatter) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id963794-bb"></a>special_values_formatter(<span class="bold"><strong>const</strong></span> special_values_formatter_type &amp; svf) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id836876-bb"></a>short_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; short_weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1039848-bb"></a>long_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; long_weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id827403-bb"></a>short_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; short_month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id793189-bb"></a>long_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; long_month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id859844-bb"></a>date_gen_phrase_strings(<span class="bold"><strong>const</strong></span> input_collection_type &amp; new_strings,
+                             <span class="bold"><strong>typename</strong></span> date_gen_formatter_type::phrase_elements beg_pos = date_gen_formatter_type::first) ;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id999944-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id793092-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id801516-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> month_type &amp; m) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1000529-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> day_type &amp; day) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id901461-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> day_of_week_type &amp; dow) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id968197-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> period_type &amp; p) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id961992-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> partial_date_type &amp; pd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id894202-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> nth_kday_type &amp; nkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1110250-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> first_kday_type &amp; fkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1076184-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> last_kday_type &amp; lkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1002714-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> kday_before_type &amp; fkb) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id931184-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+            <span class="bold"><strong>const</strong></span> kday_after_type &amp; fka) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1047925"></a><h3>
+<a name="id1101353-bb"></a><code class="computeroutput">date_facet</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">tm</span> <a name="id972887-bb"></a>init_tm(tm &amp; tm_value) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> OutItrT</span>
+<a name="id1078611-bb"></a>do_put_special(OutItrT next, std::ios_base &amp; , char_type ,
+               <span class="bold"><strong>const</strong></span> boost::date_time::special_values sv) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> OutItrT</span>
+<a name="id961546-bb"></a>do_put_tm(OutItrT next, std::ios_base &amp; a_ios, char_type fill_char,
+          <span class="bold"><strong>const</strong></span> tm &amp; tm_value, string_type a_format) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="years_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id857461"><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="date_input_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_formatter.html b/doc/html/date_formatter.html
new file mode 100644
index 0000000000..e3b76e7ed6
--- /dev/null
+++ b/doc/html/date_formatter.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id891955" title="Header &lt;boost/date_time/date_formatting.hpp&gt;">
+<link rel="prev" href="ymd_formatter.html" title="Class template ymd_formatter">
+<link rel="next" href="ostream_month_formatter.html" title="Class template ostream_month_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ymd_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="ostream_month_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_formatter</span></h2>
+<p>boost::date_time::date_formatter &#8212; Convert a date to string using format policies. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> date_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt; string_type;
+
+  <span class="emphasis"><em>// <a href="date_formatter.html#id795720-bb">public static functions</a></em></span>
+  <span class="type">string_type</span> <a href="date_formatter.html#id795724-bb">date_to_string</a>(date_type) ;
+  <span class="type">std::string</span> <a href="date_formatter.html#id824946-bb">date_to_string</a>(date_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1069209"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1069212"></a><h3>
+<a name="id795720-bb"></a><code class="computeroutput">date_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id795724-bb"></a>date_to_string(date_type d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id824946-bb"></a>date_to_string(date_type d) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ymd_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="ostream_month_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_generator_formatter.html b/doc/html/date_generator_formatter.html
new file mode 100644
index 0000000000..106abab623
--- /dev/null
+++ b/doc/html/date_generator_formatter.html
@@ -0,0 +1,167 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_generator_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id899283" title="Header &lt;boost/date_time/date_generator_formatter.hpp&gt;">
+<link rel="prev" href="ostream_date_formatter.html" title="Class template ostream_date_formatter">
+<link rel="next" href="date_generator_parser.html" title="Class template date_generator_parser">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_date_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id899283"><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="date_generator_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_generator_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_generator_formatter</span></h2>
+<p>boost::date_time::date_generator_formatter &#8212; Formats date_generators for output. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> date_generator_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a>&lt; date_type &gt;        partial_date_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>&lt; date_type &gt;   nth_kday_type;    
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>&lt; date_type &gt; first_kday_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>&lt; date_type &gt;  last_kday_type;   
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>&lt; date_type &gt;    kday_after_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>&lt; date_type &gt;   kday_before_type; 
+  <span class="bold"><strong>typedef</strong></span> CharT                            char_type;        
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; char_type &gt;   string_type;      
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; string_type &gt;       collection_type;  
+
+  <span class="emphasis"><em>// <a href="date_generator_formatter.html#date_generator_formatterconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_generator_formatter.html#id1110027-bb">date_generator_formatter</a>();
+  <a href="date_generator_formatter.html#id961419-bb">date_generator_formatter</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                           <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                           <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                           <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                           <span class="bold"><strong>const</strong></span> string_type &amp;);
+
+  <span class="emphasis"><em>// <a href="date_generator_formatter.html#id973485-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_formatter.html#id901972-bb">elements</a>(<span class="bold"><strong>const</strong></span> collection_type &amp;, phrase_elements = first) ;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id835566-bb">put_partial_date</a>(OutItrT, std::ios_base &amp;, CharT,
+                             <span class="bold"><strong>const</strong></span> partial_date_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id858210-bb">put_nth_kday</a>(OutItrT, std::ios_base &amp;, CharT,
+                         <span class="bold"><strong>const</strong></span> nth_kday_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id1042356-bb">put_first_kday</a>(OutItrT, std::ios_base &amp;, CharT,
+                           <span class="bold"><strong>const</strong></span> first_kday_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id800050-bb">put_last_kday</a>(OutItrT, std::ios_base &amp;, CharT,
+                          <span class="bold"><strong>const</strong></span> last_kday_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id821874-bb">put_kday_before</a>(OutItrT, std::ios_base &amp;, CharT,
+                            <span class="bold"><strong>const</strong></span> kday_before_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id1113326-bb">put_kday_after</a>(OutItrT, std::ios_base &amp;, CharT,
+                           <span class="bold"><strong>const</strong></span> kday_after_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="date_generator_formatter.html#id1033341-bb">private member functions</a></em></span>
+  <span class="type">OutItrT</span> <a href="date_generator_formatter.html#id836227-bb">put_string</a>(OutItrT, <span class="bold"><strong>const</strong></span> string_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type first_string;
+  <span class="bold"><strong>static</strong></span> const char_type second_string;
+  <span class="bold"><strong>static</strong></span> const char_type third_string;
+  <span class="bold"><strong>static</strong></span> const char_type fourth_string;
+  <span class="bold"><strong>static</strong></span> const char_type fifth_string;
+  <span class="bold"><strong>static</strong></span> const char_type last_string;
+  <span class="bold"><strong>static</strong></span> const char_type before_string;
+  <span class="bold"><strong>static</strong></span> const char_type after_string;
+  <span class="bold"><strong>static</strong></span> const char_type of_string;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1071018"></a><h2>Description</h2>
+<p>Formatting of date_generators follows specific orders for the various types of date_generators.</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>partial_date =&gt; "dd Month"</p></li>
+<li><p>nth_day_of_the_week_in_month =&gt; "nth weekday of month"</p></li>
+<li><p>first_day_of_the_week_in_month =&gt; "first weekday of month"</p></li>
+<li><p>last_day_of_the_week_in_month =&gt; "last weekday of month"</p></li>
+<li><p>first_day_of_the_week_after =&gt; "weekday after"</p></li>
+<li><p>first_day_of_the_week_before =&gt; "weekday before" While the order of the elements in these phrases cannot be changed, the elements themselves can be. Weekday and Month get their formats and names from the date_facet. The remaining elements are stored in the date_generator_formatter and can be customized upon construction or via a member function. The default elements are those shown in the examples above. </p></li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1071052"></a><h3>
+<a name="date_generator_formatterconstruct-copy-destruct"></a><code class="computeroutput">date_generator_formatter</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1110027-bb"></a>date_generator_formatter();</pre></li>
+<li><pre class="literallayout"><a name="id961419-bb"></a>date_generator_formatter(<span class="bold"><strong>const</strong></span> string_type &amp; first,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; second,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; third,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; fourth,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; fifth, <span class="bold"><strong>const</strong></span> string_type &amp; last,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; before,
+                         <span class="bold"><strong>const</strong></span> string_type &amp; after, <span class="bold"><strong>const</strong></span> string_type &amp; of);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1071165"></a><h3>
+<a name="id973485-bb"></a><code class="computeroutput">date_generator_formatter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id901972-bb"></a>elements(<span class="bold"><strong>const</strong></span> collection_type &amp; new_strings,
+              phrase_elements beg_pos = first) ;</pre>
+<p>The order of the strings in the given collection is important. They must follow:</p>
+<div class="itemizedlist"><ul type="disc"><li><p>first, second, third, fourth, fifth, last, before, after, of.</p></li></ul></div>
+<p>It is not necessary to send in a complete set if only a few elements are to be replaced as long as the correct beg_pos is used.</p>
+<p>Ex: To keep the default first through fifth elements, but replace the rest with a collection of:</p>
+<div class="itemizedlist"><ul type="disc"><li><p>"final", "prior", "following", "in". The beg_pos of date_generator_formatter::last would be used. </p></li></ul></div>
+</li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id835566-bb"></a>put_partial_date(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                           <span class="bold"><strong>const</strong></span> partial_date_type &amp; pd,
+                           <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id858210-bb"></a>put_nth_kday(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                       <span class="bold"><strong>const</strong></span> nth_kday_type &amp; nkd, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id1042356-bb"></a>put_first_kday(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                         <span class="bold"><strong>const</strong></span> first_kday_type &amp; fkd,
+                         <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id800050-bb"></a>put_last_kday(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                        <span class="bold"><strong>const</strong></span> last_kday_type &amp; lkd, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id821874-bb"></a>put_kday_before(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                          <span class="bold"><strong>const</strong></span> kday_before_type &amp; fkb,
+                          <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id1113326-bb"></a>put_kday_after(OutItrT next, std::ios_base &amp; a_ios, CharT a_fill,
+                         <span class="bold"><strong>const</strong></span> kday_after_type &amp; fka,
+                         <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1071540"></a><h3>
+<a name="id1033341-bb"></a><code class="computeroutput">date_generator_formatter</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id836227-bb"></a>put_string(OutItrT next, <span class="bold"><strong>const</strong></span> string_type &amp; str) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_date_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id899283"><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="date_generator_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_generator_parser.html b/doc/html/date_generator_parser.html
new file mode 100644
index 0000000000..94f539d55d
--- /dev/null
+++ b/doc/html/date_generator_parser.html
@@ -0,0 +1,186 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_generator_parser</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id872048" title="Header &lt;boost/date_time/date_generator_parser.hpp&gt;">
+<link rel="prev" href="date_generator_formatter.html" title="Class template date_generator_formatter">
+<link rel="next" href="year_based_generator.html" title="Class template year_based_generator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_generator_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id872048"><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="year_based_generator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_generator_parser"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_generator_parser</span></h2>
+<p>boost::date_time::date_generator_parser &#8212; Class for date_generator parsing. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> date_generator_parser {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                string_type;      
+  <span class="bold"><strong>typedef</strong></span> std::istreambuf_iterator&lt; charT &gt;         stream_itr_type;  
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                     month_type;       
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type               day_of_week_type; 
+  <span class="bold"><strong>typedef</strong></span> date_type::day_type                       day_type;         
+  <span class="bold"><strong>typedef</strong></span> <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>&lt; charT &gt;                parse_tree_type;  
+  <span class="bold"><strong>typedef</strong></span> parse_tree_type::parse_match_result_type  match_results;    
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; collection_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a>&lt; date_type &gt;                 partial_date_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>&lt; date_type &gt;            nth_kday_type;    
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>&lt; date_type &gt;          first_kday_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>&lt; date_type &gt;           last_kday_type;   
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>&lt; date_type &gt;             kday_after_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>&lt; date_type &gt;            kday_before_type; 
+  <span class="bold"><strong>typedef</strong></span> charT                                     char_type;        
+
+  <span class="emphasis"><em>// <a href="date_generator_parser.html#date_generator_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_generator_parser.html#id901996-bb">date_generator_parser</a>();
+  <a href="date_generator_parser.html#id1042340-bb">date_generator_parser</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;);
+  <a href="date_generator_parser.html#id965416-bb">date_generator_parser</a>(<span class="bold"><strong>const</strong></span> <a href="date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>&lt; date_type, charT &gt; *);
+
+  <span class="emphasis"><em>// <a href="date_generator_parser.html#id693373-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id907954-bb">element_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> string_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id871968-bb">element_strings</a>(<span class="bold"><strong>const</strong></span> collection_type &amp;) ;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">partial_date_type</span>
+    <a href="date_generator_parser.html#id961679-bb">get_partial_date_type</a>(stream_itr_type &amp;, stream_itr_type &amp;,
+                          std::ios_base &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">nth_kday_type</span>
+    <a href="date_generator_parser.html#id829084-bb">get_nth_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;,
+                      <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">first_kday_type</span>
+    <a href="date_generator_parser.html#id931665-bb">get_first_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;,
+                        <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">last_kday_type</span>
+    <a href="date_generator_parser.html#id1101005-bb">get_last_kday_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;,
+                       <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">kday_before_type</span>
+    <a href="date_generator_parser.html#id1044850-bb">get_kday_before_type</a>(stream_itr_type &amp;, stream_itr_type &amp;,
+                         std::ios_base &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">kday_after_type</span>
+    <a href="date_generator_parser.html#id941871-bb">get_kday_after_type</a>(stream_itr_type &amp;, stream_itr_type &amp;, std::ios_base &amp;,
+                        <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="date_generator_parser.html#id720600-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_generator_parser.html#id864815-bb">extract_element</a>(stream_itr_type &amp;, stream_itr_type &amp;,
+                       <span class="bold"><strong>typename</strong></span> date_generator_parser::phrase_elements) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type first_string;
+  <span class="bold"><strong>static</strong></span> const char_type second_string;
+  <span class="bold"><strong>static</strong></span> const char_type third_string;
+  <span class="bold"><strong>static</strong></span> const char_type fourth_string;
+  <span class="bold"><strong>static</strong></span> const char_type fifth_string;
+  <span class="bold"><strong>static</strong></span> const char_type last_string;
+  <span class="bold"><strong>static</strong></span> const char_type before_string;
+  <span class="bold"><strong>static</strong></span> const char_type after_string;
+  <span class="bold"><strong>static</strong></span> const char_type of_string;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1072427"></a><h2>Description</h2>
+<p>The elements of a date_generator "phrase" are parsed from the input stream in a particular order. All elements are required and the order in which they appear cannot change, however, the elements themselves can be changed. The default elements and their order are as follows:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>partial_date =&gt; "dd Month"</p></li>
+<li><p>nth_day_of_the_week_in_month =&gt; "nth weekday of month"</p></li>
+<li><p>first_day_of_the_week_in_month =&gt; "first weekday of month"</p></li>
+<li><p>last_day_of_the_week_in_month =&gt; "last weekday of month"</p></li>
+<li><p>first_day_of_the_week_after =&gt; "weekday after"</p></li>
+<li><p>first_day_of_the_week_before =&gt; "weekday before"</p></li>
+</ul></div>
+<p>Weekday and Month names and formats are handled via the date_input_facet.</p>
+<p>TODO: add doc-comments for which elements can be changed </p>
+<div class="refsect2" lang="en">
+<a name="id1072473"></a><h3>
+<a name="date_generator_parserconstruct-copy-destruct"></a><code class="computeroutput">date_generator_parser</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id901996-bb"></a>date_generator_parser();</pre></li>
+<li><pre class="literallayout"><a name="id1042340-bb"></a>date_generator_parser(<span class="bold"><strong>const</strong></span> string_type &amp; first, <span class="bold"><strong>const</strong></span> string_type &amp; second,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; third, <span class="bold"><strong>const</strong></span> string_type &amp; fourth,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; fifth, <span class="bold"><strong>const</strong></span> string_type &amp; last,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; before, <span class="bold"><strong>const</strong></span> string_type &amp; after,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; of);</pre></li>
+<li><pre class="literallayout"><a name="id965416-bb"></a>date_generator_parser(<span class="bold"><strong>const</strong></span> <a href="date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>&lt; date_type, charT &gt; * dgp);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1072609"></a><h3>
+<a name="id693373-bb"></a><code class="computeroutput">date_generator_parser</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id907954-bb"></a>element_strings(<span class="bold"><strong>const</strong></span> string_type &amp; first, <span class="bold"><strong>const</strong></span> string_type &amp; second,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; third, <span class="bold"><strong>const</strong></span> string_type &amp; fourth,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; fifth, <span class="bold"><strong>const</strong></span> string_type &amp; last,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; before, <span class="bold"><strong>const</strong></span> string_type &amp; after,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; of) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id871968-bb"></a>element_strings(<span class="bold"><strong>const</strong></span> collection_type &amp; col) ;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">partial_date_type</span>
+  <a name="id961679-bb"></a>get_partial_date_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                        std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">nth_kday_type</span>
+  <a name="id829084-bb"></a>get_nth_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                    std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">first_kday_type</span>
+  <a name="id931665-bb"></a>get_first_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                      std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">last_kday_type</span>
+  <a name="id1101005-bb"></a>get_last_kday_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                     std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">kday_before_type</span>
+  <a name="id1044850-bb"></a>get_kday_before_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                       std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">kday_after_type</span>
+  <a name="id941871-bb"></a>get_kday_after_type(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                      std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1073000"></a><h3>
+<a name="id720600-bb"></a><code class="computeroutput">date_generator_parser</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id864815-bb"></a>extract_element(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                     <span class="bold"><strong>typename</strong></span> date_generator_parser::phrase_elements ele) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_generator_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id872048"><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="year_based_generator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_input_facet.html b/doc/html/date_input_facet.html
new file mode 100644
index 0000000000..f7268f02d2
--- /dev/null
+++ b/doc/html/date_input_facet.html
@@ -0,0 +1,187 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_input_facet</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id857461" title="Header &lt;boost/date_time/date_facet.hpp&gt;">
+<link rel="prev" href="date_facet.html" title="Class template date_facet">
+<link rel="next" href="simple_format.html" title="Class template simple_format">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id857461"><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="simple_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_input_facet"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_input_facet</span></h2>
+<p>boost::date_time::date_input_facet &#8212; Input facet. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> InItrT = std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> date_input_facet {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type                             duration_type;             
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type                          day_of_week_type;          
+  <span class="bold"><strong>typedef</strong></span> date_type::day_type                                  day_type;                  
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                                month_type;                
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type                                 year_type;                 
+  <span class="bold"><strong>typedef</strong></span> <a href="period.html" title="Class template period">boost::date_time::period</a>&lt; date_type, duration_type &gt; period_type;               
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt;                           string_type;               
+  <span class="bold"><strong>typedef</strong></span> CharT                                                char_type;                 
+  <span class="bold"><strong>typedef</strong></span> <a href="period_parser.html" title="Class template period_parser">boost::date_time::period_parser</a>&lt; date_type, CharT &gt;  period_parser_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, CharT &gt;            special_values_parser_type;
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; CharT &gt; &gt;            input_collection_type;     
+  <span class="bold"><strong>typedef</strong></span> <a href="format_date_parser.html" title="Class template format_date_parser">format_date_parser</a>&lt; date_type, CharT &gt;               format_date_parser_type;   
+  <span class="bold"><strong>typedef</strong></span> <a href="date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>&lt; date_type, CharT &gt;            date_gen_parser_type;      
+  <span class="bold"><strong>typedef</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a>&lt; date_type &gt;                            partial_date_type;         
+  <span class="bold"><strong>typedef</strong></span> <a href="nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>&lt; date_type &gt;                       nth_kday_type;             
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>&lt; date_type &gt;                     first_kday_type;           
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>&lt; date_type &gt;                      last_kday_type;            
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>&lt; date_type &gt;                        kday_after_type;           
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>&lt; date_type &gt;                       kday_before_type;          
+
+  <span class="emphasis"><em>// <a href="date_input_facet.html#date_input_facetconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_input_facet.html#id1102047-bb">date_input_facet</a>(::size_t = 0);
+  <a href="date_input_facet.html#id832458-bb">date_input_facet</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, ::size_t = 0);
+  <a href="date_input_facet.html#id873250-bb">date_input_facet</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> format_date_parser_type &amp;,
+                   <span class="bold"><strong>const</strong></span> special_values_parser_type &amp;,
+                   <span class="bold"><strong>const</strong></span> period_parser_type &amp;, <span class="bold"><strong>const</strong></span> date_gen_parser_type &amp;,
+                   ::size_t = 0);
+
+  <span class="emphasis"><em>// <a href="date_input_facet.html#id1074396-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1074400-bb">format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id942833-bb">set_iso_format</a>() ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id934126-bb">set_iso_extended_format</a>() ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1034228-bb">month_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id907092-bb">weekday_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id898962-bb">year_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id999422-bb">period_parser</a>(period_parser_type) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id977245-bb">short_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1047083-bb">long_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1077283-bb">short_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id900778-bb">long_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id927637-bb">date_gen_element_strings</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1076120-bb">date_gen_element_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                                <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                                <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                                <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                                <span class="bold"><strong>const</strong></span> string_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_input_facet.html#id1101614-bb">special_values_parser</a>(special_values_parser_type) ;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id893440-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id962873-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, month_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id823872-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, day_of_week_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id1110634-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, day_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id1075116-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, year_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id657452-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id792123-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, period_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id1070279-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, nth_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id829345-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, partial_date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id967758-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, first_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id793007-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, last_kday_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id936965-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, kday_before_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="date_input_facet.html#id931022-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, kday_after_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type long_weekday_format;
+  <span class="bold"><strong>static</strong></span> const char_type short_weekday_format;
+  <span class="bold"><strong>static</strong></span> const char_type long_month_format;
+  <span class="bold"><strong>static</strong></span> const char_type short_month_format;
+  <span class="bold"><strong>static</strong></span> const char_type four_digit_year_format;
+  <span class="bold"><strong>static</strong></span> const char_type two_digit_year_format;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_separator;
+  <span class="bold"><strong>static</strong></span> const char_type standard_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type iso_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type iso_format_extended_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type default_date_format;
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1066594"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1066598"></a><h3>
+<a name="date_input_facetconstruct-copy-destruct"></a><code class="computeroutput">date_input_facet</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1102047-bb"></a>date_input_facet(::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id832458-bb"></a>date_input_facet(<span class="bold"><strong>const</strong></span> string_type &amp; format, ::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id873250-bb"></a>date_input_facet(<span class="bold"><strong>const</strong></span> string_type &amp; format,
+                 <span class="bold"><strong>const</strong></span> format_date_parser_type &amp; date_parser,
+                 <span class="bold"><strong>const</strong></span> special_values_parser_type &amp; sv_parser,
+                 <span class="bold"><strong>const</strong></span> period_parser_type &amp; per_parser,
+                 <span class="bold"><strong>const</strong></span> date_gen_parser_type &amp; date_gen_parser,
+                 ::size_t ref_count = 0);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1066702"></a><h3>
+<a name="id1074396-bb"></a><code class="computeroutput">date_input_facet</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1074400-bb"></a>format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id942833-bb"></a>set_iso_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id934126-bb"></a>set_iso_extended_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1034228-bb"></a>month_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id907092-bb"></a>weekday_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id898962-bb"></a>year_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id999422-bb"></a>period_parser(period_parser_type period_parser) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id977245-bb"></a>short_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1047083-bb"></a>long_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1077283-bb"></a>short_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id900778-bb"></a>long_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id927637-bb"></a>date_gen_element_strings(<span class="bold"><strong>const</strong></span> input_collection_type &amp; col) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1076120-bb"></a>date_gen_element_strings(<span class="bold"><strong>const</strong></span> string_type &amp; first,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; second,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; third,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; fourth,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; fifth,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; last,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; before,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; after,
+                              <span class="bold"><strong>const</strong></span> string_type &amp; of) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1101614-bb"></a>special_values_parser(special_values_parser_type sv_parser) ;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id893440-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; , date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id962873-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; , month_type &amp; m) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id823872-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; ,
+           day_of_week_type &amp; wd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id1110634-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; , day_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id1075116-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; , year_type &amp; y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id657452-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id792123-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios, period_type &amp; p) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id1070279-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           nth_kday_type &amp; nkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id829345-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           partial_date_type &amp; pd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id967758-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           first_kday_type &amp; fkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id793007-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           last_kday_type &amp; lkd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id936965-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           kday_before_type &amp; fkb) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id931022-bb"></a>get(InItrT &amp; from, InItrT &amp; to, std::ios_base &amp; a_ios,
+           kday_after_type &amp; fka) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id857461"><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="simple_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_itr.html b/doc/html/date_itr.html
new file mode 100644
index 0000000000..348e9029b8
--- /dev/null
+++ b/doc/html/date_itr.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_itr</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1034813" title="Header &lt;boost/date_time/date_iterator.hpp&gt;">
+<link rel="prev" href="date_itr_base.html" title="Class template date_itr_base">
+<link rel="next" href="date_names_put.html" title="Class template date_names_put">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_itr_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034813"><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="date_names_put.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_itr"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_itr</span></h2>
+<p>boost::date_time::date_itr &#8212; Overrides the base date iterator providing hook for functors. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> offset_functor, <span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> date_itr : <span class="bold"><strong>public</strong></span> boost::date_time::date_itr_base&lt; date_type &gt; {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;
+
+  <span class="emphasis"><em>// <a href="date_itr.html#date_itrconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_itr.html#id1033819-bb">date_itr</a>(date_type, <span class="bold"><strong>int</strong></span> = 1);
+
+  <span class="emphasis"><em>// <a href="date_itr.html#id1033814-bb">public member functions</a></em></span>
+
+  <span class="emphasis"><em>// <a href="date_itr.html#id1105060-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a href="date_itr.html#id1105065-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a href="date_itr.html#id1111636-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1077505"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1077509"></a><h3>
+<a name="date_itrconstruct-copy-destruct"></a><code class="computeroutput">date_itr</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1033819-bb"></a>date_itr(date_type d, <span class="bold"><strong>int</strong></span> factor = 1);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1077547"></a><h3>
+<a name="id1033814-bb"></a><code class="computeroutput">date_itr</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1077566"></a><h3>
+<a name="id1105060-bb"></a><code class="computeroutput">date_itr</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a name="id1105065-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; current) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a name="id1111636-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; current) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_itr_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034813"><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="date_names_put.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_itr_base.html b/doc/html/date_itr_base.html
new file mode 100644
index 0000000000..098ea7ecd5
--- /dev/null
+++ b/doc/html/date_itr_base.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_itr_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1034813" title="Header &lt;boost/date_time/date_iterator.hpp&gt;">
+<link rel="prev" href="previous_weekday.html" title="Function template previous_weekday">
+<link rel="next" href="date_itr.html" title="Class template date_itr">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="previous_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034813"><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="date_itr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_itr_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_itr_base</span></h2>
+<p>boost::date_time::date_itr_base &#8212; Base date iterator type. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> date_itr_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;    
+  <span class="bold"><strong>typedef</strong></span> date_type                value_type;       
+  <span class="bold"><strong>typedef</strong></span> std::input_iterator_tag  iterator_category;
+
+  <span class="emphasis"><em>// <a href="date_itr_base.html#date_itr_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_itr_base.html#id903552-bb">date_itr_base</a>(date_type);
+  <a href="date_itr_base.html#id822986-bb">~date_itr_base</a>();
+
+  <span class="emphasis"><em>// <a href="date_itr_base.html#id1044240-bb">public member functions</a></em></span>
+  <span class="type"><a href="date_itr_base.html" title="Class template date_itr_base">date_itr_base</a> &amp;</span> <a href="date_itr_base.html#id1044245-bb"><span class="bold"><strong>operator</strong></span>++</a>() ;
+  <span class="type"><a href="date_itr_base.html" title="Class template date_itr_base">date_itr_base</a> &amp;</span> <a href="date_itr_base.html#id937893-bb"><span class="bold"><strong>operator</strong></span>--</a>() ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a href="date_itr_base.html#id1041369-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a href="date_itr_base.html#id870251-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="date_itr_base.html#id865994-bb"><span class="bold"><strong>operator</strong></span> *</a>() ;
+  <span class="type">date_type *</span> <a href="date_itr_base.html#id866007-bb"><span class="bold"><strong>operator</strong></span>-&gt;</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id967884-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id1112606-bb"><span class="bold"><strong>operator</strong></span>&lt;=</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id862672-bb"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id825778-bb"><span class="bold"><strong>operator</strong></span>&gt;=</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id1103056-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_itr_base.html#id978496-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076892"></a><h2>Description</h2>
+<p>This class provides the skeleton for the creation of iterators. New and interesting interators can be created by plugging in a new function that derives the next value from the current state. generation of various types of -based information.</p>
+<p><span class="bold"><strong>Template Parameters</strong></span></p>
+<p><span class="bold"><strong>date_type</strong></span></p>
+<p>The date_type is a concrete date_type. The date_type must define a duration_type and a calendar_type. </p>
+<div class="refsect2" lang="en">
+<a name="id1076917"></a><h3>
+<a name="date_itr_baseconstruct-copy-destruct"></a><code class="computeroutput">date_itr_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id903552-bb"></a>date_itr_base(date_type d);</pre></li>
+<li><pre class="literallayout"><a name="id822986-bb"></a>~date_itr_base();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1076965"></a><h3>
+<a name="id1044240-bb"></a><code class="computeroutput">date_itr_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><a href="date_itr_base.html" title="Class template date_itr_base">date_itr_base</a> &amp;</span> <a name="id1044245-bb"></a><span class="bold"><strong>operator</strong></span>++() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="date_itr_base.html" title="Class template date_itr_base">date_itr_base</a> &amp;</span> <a name="id937893-bb"></a><span class="bold"><strong>operator</strong></span>--() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a name="id1041369-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; current) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> duration_type</span> <a name="id870251-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; current) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id865994-bb"></a><span class="bold"><strong>operator</strong></span> *() ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type *</span> <a name="id866007-bb"></a><span class="bold"><strong>operator</strong></span>-&gt;() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id967884-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1112606-bb"></a><span class="bold"><strong>operator</strong></span>&lt;=(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id862672-bb"></a><span class="bold"><strong>operator</strong></span>&gt;(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id825778-bb"></a><span class="bold"><strong>operator</strong></span>&gt;=(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1103056-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id978496-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> date_type &amp; d) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="previous_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034813"><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="date_itr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_names_put.html b/doc/html/date_names_put.html
new file mode 100644
index 0000000000..de5e19e2aa
--- /dev/null
+++ b/doc/html/date_names_put.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template date_names_put</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1072331" title="Header &lt;boost/date_time/date_names_put.hpp&gt;">
+<link rel="prev" href="date_itr.html" title="Class template date_itr">
+<link rel="next" href="all_date_names_put.html" title="Class template all_date_names_put">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_itr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1072331"><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="all_date_names_put.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="date_names_put"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template date_names_put</span></h2>
+<p>boost::date_time::date_names_put &#8212; Output facet base class for gregorian dates. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Config, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>,
+         <span class="bold"><strong>typename</strong></span> <a href="OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> = std::ostreambuf_iterator&lt;charT&gt; &gt;
+<span class="bold"><strong>class</strong></span> date_names_put {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> OutputIterator             iter_type;         
+  <span class="bold"><strong>typedef</strong></span> Config::month_type         month_type;        
+  <span class="bold"><strong>typedef</strong></span> Config::month_enum         month_enum;        
+  <span class="bold"><strong>typedef</strong></span> Config::weekday_enum       weekday_enum;      
+  <span class="bold"><strong>typedef</strong></span> Config::special_value_enum special_value_enum;
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt; string_type;       
+  <span class="bold"><strong>typedef</strong></span> charT                      char_type;         
+
+  <span class="emphasis"><em>// <a href="date_names_put.html#date_names_putconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="date_names_put.html#id891338-bb">date_names_put</a>();
+
+  <span class="emphasis"><em>// <a href="date_names_put.html#id943280-bb">public member functions</a></em></span>
+  <span class="type">std::locale::id &amp;</span> <a href="date_names_put.html#id943286-bb">__get_id</a>(<span class="bold"><strong>void</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1107990-bb">put_special_value</a>(iter_type &amp;, special_value_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id836941-bb">put_month_short</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id935451-bb">put_month_long</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id899705-bb">put_weekday_short</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1070902-bb">put_weekday_long</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="date_names_put.html#id1038228-bb">has_date_sep_chars</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1038726-bb">year_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1038749-bb">month_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id793087-bb">day_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">ymd_order_spec</span> <a href="date_names_put.html#id1109946-bb">date_order</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_format_spec</span> <a href="date_names_put.html#id1037549-bb">month_format</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="date_names_put.html#id961286-bb">protected member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id961291-bb">do_put_month_short</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1103916-bb">do_put_month_long</a>(iter_type &amp;, month_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id974172-bb">do_put_special_value</a>(iter_type &amp;, special_value_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id1042265-bb">do_put_weekday_short</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id908040-bb">do_put_weekday_long</a>(iter_type &amp;, weekday_enum) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="date_names_put.html#id961446-bb">do_has_date_sep_chars</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id837697-bb">do_year_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id942160-bb">do_month_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id824903-bb">do_day_sep_char</a>(iter_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> ymd_order_spec</span> <a href="date_names_put.html#id972536-bb">do_date_order</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> month_format_spec</span> <a href="date_names_put.html#id799812-bb">do_month_format</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id929856-bb">put_string</a>(iter_type &amp;, <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="date_names_put.html#id826751-bb">put_string</a>(iter_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type default_special_value_names;
+  <span class="bold"><strong>static</strong></span> const char_type separator;
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1078576"></a><h2>Description</h2>
+<p>This class is a base class for date facets used to localize the names of months and the names of days in the week.</p>
+<p>Requirements of Config</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>define an enumeration month_enum that enumerates the months. The enumeration should be '1' based eg: Jan==1</p></li>
+<li><p>define as_short_string and as_long_string</p></li>
+</ul></div>
+<p>(see langer &amp; kreft p334). </p>
+<div class="refsect2" lang="en">
+<a name="id1078600"></a><h3>
+<a name="date_names_putconstruct-copy-destruct"></a><code class="computeroutput">date_names_put</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id891338-bb"></a>date_names_put();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1078633"></a><h3>
+<a name="id943280-bb"></a><code class="computeroutput">date_names_put</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">std::locale::id &amp;</span> <a name="id943286-bb"></a>__get_id(<span class="bold"><strong>void</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1107990-bb"></a>put_special_value(iter_type &amp; oitr, special_value_enum sv) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id836941-bb"></a>put_month_short(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id935451-bb"></a>put_month_long(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id899705-bb"></a>put_weekday_short(iter_type &amp; oitr, weekday_enum wd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1070902-bb"></a>put_weekday_long(iter_type &amp; oitr, weekday_enum wd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1038228-bb"></a>has_date_sep_chars() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1038726-bb"></a>year_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1038749-bb"></a>month_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id793087-bb"></a>day_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_order_spec</span> <a name="id1109946-bb"></a>date_order() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_format_spec</span> <a name="id1037549-bb"></a>month_format() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1078965"></a><h3>
+<a name="id961286-bb"></a><code class="computeroutput">date_names_put</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id961291-bb"></a>do_put_month_short(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id1103916-bb"></a>do_put_month_long(iter_type &amp; oitr, month_enum moy) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+<a name="id974172-bb"></a>do_put_special_value(iter_type &amp; oitr, special_value_enum sv) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id1042265-bb"></a>do_put_weekday_short(iter_type &amp; , weekday_enum ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id908040-bb"></a>do_put_weekday_long(iter_type &amp; , weekday_enum ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id961446-bb"></a>do_has_date_sep_chars() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id837697-bb"></a>do_year_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id942160-bb"></a>do_month_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id824903-bb"></a>do_day_sep_char(iter_type &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> ymd_order_spec</span> <a name="id972536-bb"></a>do_date_order() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> month_format_spec</span> <a name="id799812-bb"></a>do_month_format() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id929856-bb"></a>put_string(iter_type &amp; oi, <span class="bold"><strong>const</strong></span> charT *<span class="bold"><strong>const</strong></span> s) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id826751-bb"></a>put_string(iter_type &amp; oi, <span class="bold"><strong>const</strong></span> string_type &amp; s1) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_itr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1072331"><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="all_date_names_put.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time.html b/doc/html/date_time.html
index fca3adca62..28a47c303f 100644
--- a/doc/html/date_time.html
+++ b/doc/html/date_time.html
@@ -1,10 +1,228 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/date_time.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/date_time.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/date_time.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 3. Boost.Date_Time</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="SignedInteger.html" title="Concept SignedInteger">
+<link rel="next" href="date_time/examples/general_usage_examples.html" title="General Usage Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="SignedInteger.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="date_time/examples/general_usage_examples.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="date_time"></a>Chapter 3. Boost.Date_Time</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Jeff</span> <span class="surname">Garland</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2001-2005 CrystalClear Software, Inc</p></div>
+<div><div class="legalnotice">
+<a name="id996204"></a><p>Subject to the Boost Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="date_time.html#date_time.conceptual">Conceptual</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time.html#Motivation">Motivation</a></span></dt>
+<dt><span class="section"><a href="date_time.html#date_time.domain_concepts">Domain Concepts</a></span></dt>
+<dt><span class="section"><a href="date_time.html#date_time.design_concepts">Design Concepts</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/examples/general_usage_examples.html">General Usage Examples</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html">Gregorian</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.date_class">Date</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.date_duration">Date Duration (aka Days)</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.date_period">Date Period</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.date_iterators">Date Iterators</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.date_algorithms">Date Generators/Algorithms</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html#date_time.gregorian.gregorian_calendar">Gregorian Calendar</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/posix_time.html">Posix Time</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/posix_time.html#date_time.posix_time.ptime_class">Ptime</a></span></dt>
+<dt><span class="section"><a href="date_time/posix_time.html#date_time.posix_time.time_duration">Time Duration</a></span></dt>
+<dt><span class="section"><a href="date_time/posix_time.html#date_time.posix_time.time_period">Time Period</a></span></dt>
+<dt><span class="section"><a href="date_time/posix_time.html#date_time.posix_time.time_iterators">Time Iterators</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/local_time.html">Local Time</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.time_zone_base">Time Zone (abstract)</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.posix_time_zone">Posix Time Zone</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.tz_database">Time Zone Database</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.custom_time_zone">Custom Time Zone</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.local_date_time">Local Date Time</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html#date_time.local_time.local_time_period">Local Time Period</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/date_time_io.html">Date Time Input/Output</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.format_flags">Format Flags</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.date_facet">Date Facet</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.date_input_facet">Date Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.time_facet">Time Facet</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.time_input_facet">Time Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.io_objects">Date Time Formatter/Parser Objects</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html#date_time.io_tutorial">Date Time IO Tutorial</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/serialization.html">Serialization</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html">Details</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/details.html#date_time.calculations">Calculations</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.design_goals">Design Goals</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.tradeoffs">Tradeoffs: Stability, Predictability, and Approximations</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.terminology">Terminology</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.references">References</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.buildinfo">Build-Compiler Information</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.tests">Tests</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.changes">Change History</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html#date_time.acknowledgements">Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/examples.html">Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.dates_as_strings">Dates as Strings</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.days_alive">Days Alive</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.days_between_new_year">Days Between New Years</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.end_of_month_day">Last Day of the Months</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.localization">Localization Demonstration</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.date_period_calc">Date Period Calculations</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.print_holidays">Print Holidays</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.print_month">Print Month</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.month_add">Month Adding</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.time_math">Time Math</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.print_hours">Print Hours</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.local_utc_conversion">Local to UTC Conversion</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.time_periods">Time Periods</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.simple_time_zone">Simple Time Zones</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.calc_rules">Daylight Savings Calc Rules</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.flight">Flight Time Example</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html#date_time.examples.seconds_since_epoch">Seconds Since Epoch</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="date_time/doxy.html">Library Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time/doxy.html#date_time_reference">Date Time Reference</a></span></dt>
+<dt><span class="section"><a href="date_time/doxy.html#gregorian_reference">Gregorian Reference</a></span></dt>
+<dt><span class="section"><a href="date_time/doxy.html#posix_time_reference">Posix Time Reference</a></span></dt>
+<dt><span class="section"><a href="date_time/doxy.html#local_time_reference">Local Time Reference</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<h2>
+<a name="id996224"></a>Introduction</h2>
+<p>
+ A set of date-time libraries based on generic programming concepts.
+ </p>
+<p>This documentation is also available in PDF format. It can be found at:
+ </p>
+<table class="simplelist" border="0" summary="Simple list"><tr><td><a href="http://www.crystalclearsoftware.com/libraries/date_time/date_time.pdf" target="_top">http://www.crystalclearsoftware.com/libraries/date_time/date_time.pdf</a></td></tr></table>
+<p>
+ In addition, a full doxygen reference can be found at:
+ </p>
+<table class="simplelist" border="0" summary="Simple list"><tr><td><a href="http://www.crystalclearsoftware.com/libraries/date_time/ref_guide/index.html" target="_top">http://www.crystalclearsoftware.com/libraries/date_time/ref_guide/index.html</a></td></tr></table>
+<p>
+ The most current version of the documentation can be found at:
+ </p>
+<table class="simplelist" border="0" summary="Simple list"><tr><td><a href="http://www.crystalclearsoftware.com/libraries/date_time/index.html" target="_top">http://www.crystalclearsoftware.com/libraries/date_time/index.html</a></td></tr></table>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.conceptual"></a>Conceptual</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="date_time.html#Motivation">Motivation</a></span></dt>
+<dt><span class="section"><a href="date_time.html#date_time.domain_concepts">Domain Concepts</a></span></dt>
+<dt><span class="section"><a href="date_time.html#date_time.design_concepts">Design Concepts</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="Motivation"></a>Motivation</h4></div></div></div>
+<p>
+ The motivation for this library comes from working with and helping build several date-time libraries on several projects. Date-time libraries provide fundamental infrastructure for most development projects. However, most of them have limitations in their ability to calculate, format, convert, or perform some other functionality. For example, most libraries do not correctly handle leap seconds, provide concepts such as infinity, or provide the ability to use high resolution or network time sources. These libraries also tend to be rigid in their representation of dates and times. Thus customized policies for a project or subproject are not possible.
+ </p>
+<p>
+ Programming with dates and times should be almost as simple and natural as programming with strings and integers. Applications with lots of temporal logic can be radically simplified by having a robust set of operators and calculation capabilities. Classes should provide the ability to compare dates and times, add lengths or time durations, retrieve dates and times from clocks, and work naturally with date and time intervals.
+ </p>
+<p>
+ Another motivation for development of the library was to apply modern C++ library design techniques to the date-time domain. Really to build a framework for the construction of building temporal types. For example, by providing iterators and traits classes to control fundamental properties of the library. To the authors knowledge this library is the only substantial attempt to apply modern C++ to a date-time library.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.domain_concepts"></a>Domain Concepts</h4></div></div></div>
+<p>
+ The date time domain is rich in terminology and problems.
+ The following is a brief introduction to the concepts you
+ will find reflected in the library.
+ </p>
+<p>
+ The library supports 3 basic temporal types:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">
+<span class="strong"><strong>Time Point</strong></span> -- Specifier
+ for a location in the time continuum.
+ </li>
+<li style="list-style-type: disc">
+<span class="strong"><strong>Time Duration</strong></span> -- A
+ length of time unattached to any point on the time continuum.
+ </li>
+<li style="list-style-type: disc">
+<span class="strong"><strong>Time Interval</strong></span> -- A duration
+ of time attached to a specific point in the time continuum.
+ Also known as a time period.
+ </li>
+</ul></div>
+<p>
+ Each of these temporal types has a <span class="strong"><strong>Resolution</strong></span> which is defined by the smallest representable duration. A <span class="strong"><strong>Time system</strong></span> provides all these categories of temporal types as well as the rules for labeling and calculating with time points. <span class="strong"><strong>Calendar Systems</strong></span> are simply time systems with a maximum resolution of one day. The <span class="strong"><strong>Gregorian</strong></span> system is the most widely used calendar system today (the ISO system is basically a derivative of this). However, there are many other calendar systems as well. <span class="strong"><strong>UTC (Coordinated Universal Time)</strong></span> is a widely used civil time system. UTC is adjusted for earth rotation at longitude 0 by the use of leap seconds (This is not predictable, only as necessary). Most <span class="strong"><strong>local time</strong></span> systems are based on UTC but are also adjusted for earth rotation so that daylight hours are similar everywhere. In addition, some local times include <span class="strong"><strong>daylight savings time (DST)</strong></span> adjustments to shift the daylight hours during the summer.
+ </p>
+<p>
+ A <span class="strong"><strong>Clock Device</strong></span> is software component (tied to some hardware) that provides the current date or time with respect to a time system. A clock can measure the current time to a known resolution which may be higher or lower than a particular time representation.
+ </p>
+<p>
+ The library provides support for calculating with dates and times. However, time calculations are not quite the same as calculating with integers. If you are serious about the accuracy of your time calculations need to read about <a href="date_time/details.html#date_time.tradeoffs" title="Tradeoffs: Stability, Predictability, and Approximations">Stability, Predictability, and Approximations</a>.
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc"><a href="date_time/details.html#date_time.terminology" title="Terminology">Basic Terminology</a></li>
+<li style="list-style-type: disc"><a href="date_time/details.html#date_time.calculations" title="Calculations">Calculations</a></li>
+<li style="list-style-type: disc"><a href="date_time/details.html#date_time.tradeoffs" title="Tradeoffs: Stability, Predictability, and Approximations">Stability, Predictability, and Approximations</a></li>
+<li style="list-style-type: disc"><a href="date_time/details.html#date_time.references" title="References">References</a></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.design_concepts"></a>Design Concepts</h4></div></div></div>
+<p>
+ A large part of the genesis of this library has been the observation that few date-time libraries are built in a fashion that allows customization and extension. A typical example, the calendar logic is built directly into the date class. Or the clock retrieval functions are built directly into the time class. These design decisions usually make it impossible to extend or change the library behavior. At a more fundamental level, there are usually assumptions about the resolution of time representation or the gregorian calendar.
+ </p>
+<p>
+ Often times, the result is that a project must settle for a less than complete library because of a requirement for high resolution time representation or other assumptions that do not match the implementation of the library. This is extremely unfortunate because development of a library of this sort is far from a trivial task.
+ </p>
+<p>
+ While the design is far from perfect the current design is far more flexible than any date-time library the author is aware of. It is expected that the various aspects of extensibility will be better documented in future versions. Information about the design goals of the library is <a href="date_time/details.html#date_time.design_goals" title="Design Goals">summarized here</a>.
+ </p>
+</div>
+</div>
+</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 12, 2005 at 20:53:10 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="SignedInteger.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="date_time/examples/general_usage_examples.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/date_time/date_time_io.html b/doc/html/date_time/date_time_io.html
new file mode 100644
index 0000000000..55e7d455bf
--- /dev/null
+++ b/doc/html/date_time/date_time_io.html
@@ -0,0 +1,2343 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Date Time Input/Output</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="local_time.html" title="Local Time">
+<link rel="next" href="serialization.html" title="Serialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="serialization.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="date_time.date_time_io"></a>Date Time Input/Output</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="date_time_io.html#date_time.format_flags">Format Flags</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.date_facet">Date Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.date_input_facet">Date Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.time_facet">Time Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.time_input_facet">Time Input Facet</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.io_objects">Date Time Formatter/Parser Objects</a></span></dt>
+<dt><span class="section"><a href="date_time_io.html#date_time.io_tutorial">Date Time IO Tutorial</a></span></dt>
+</dl></div>
+<h2>
+<a name="id1009041"></a>Date Time IO System</h2>
+<p><a href="date_time_io.html#streaming_exceptions">Exception Handling on Streams</a></p>
+<p>As of version 1.33, the date_time library utilizes a new IO streaming system. This new system gives the user great control over how dates and times can be represented. The customization options can be broken down into two groups: format flags and string elements. Format flags provide flexibility in the order of the date elements as well as the type. Customizing the string elements allows the replacement of built in strings from month names, weekday names, and other strings used in the IO.</p>
+<p>The output system is based on a date_facet (derived from std::facet), while the input system is based on a date_input_facet (also derived from std::facet). The time and local_time facets are derived from these base types. The output system utilizes three formatter objects, whereas the input system uses four parser objects. These formatter and parser objetcs are also customizable.</p>
+<p>It is important to note, that while all the examples shown here use narrow streams, there are wide stream facets available as well (see <a href="date_time_io.html#io_objects_table">IO Objects</a> for a complete list).</p>
+<p>It should be further noted that not all compilers are capable of using this IO system. For those compilers the IO system used in previous <code class="computeroutput">date_time</code> versions is still available. The "legacy IO" is automatically selected for these compilers, however, the legacy IO system can be manually selected by defining <code class="computeroutput">USE_DATE_TIME_PRE_1_33_FACET_IO</code>. See the <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.</p>
+<a name="streaming_exceptions"></a><h5>
+<a name="id1009121"></a>Exception Handling on Streams</h5>
+<p>When an error occurs during the input streaming process, the <code class="computeroutput">std::ios_base::failbit</code> will (always) be set on the stream. It is also possible to have exceptions thrown when an error occurs. To "turn on" these exceptions, call the stream's <code class="computeroutput">exceptions</code> function with a parameter of <code class="computeroutput">std::ios_base::failbit</code>.</p>
+<pre class="screen">// "Turning on" exceptions
+date d(not_a_date_time);
+std::stringstream ss;
+ss.exceptions(std::ios_base::failbit);
+ss.str("204-Jan-01");
+ss &gt;&gt; d; // throws bad_year exception AND sets failbit on stream</pre>
+<h5>
+<a name="id1009160"></a>A simple example of this new system:</h5>
+<pre class="screen">//example to customize output to be "LongWeekday LongMonthname day, year"
+// "%A %b %d, %Y"
+date d(2005,Jun,25);
+date_facet* facet(new date_facet("%A %B %d, %Y"));
+std::cout.imbue(std::locale(std::cout.getloc(), facet));
+std::cout &lt;&lt; d &lt;&lt; std::endl;
+// "Saturday June 25, 2005"</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.format_flags"></a>Format Flags</h4></div></div></div>
+<p>Many of the format flags this new system uses for output are those used by <code class="computeroutput">strftime(...)</code>, but not all. Some new flags have been added, and others overridden. The input system supports only specific flags, therefore, not all flags that work for output will work with input (we are currently working to correct this situation).</p>
+<p>The following tables list the all the flags available for both date_time IO as well as strftime. Format flags marked with a single asterisk (*) have a behavior unique to date_time. Those flags marked with an exclamation point (!) are not usable for input (at this time). The first table is for dates, and the second table is for times.
+ </p>
+<p><a name="date_time_io.date_format_flags"></a>
+ Date Facet Format Flags
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Format Specifier</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%a</pre></td>
+<td>Abbreviated weekday name</td>
+</tr>
+<tr><td><pre class="screen">"Mon" =&gt; Monday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%A</pre></td>
+<td>Long weekday name</td>
+</tr>
+<tr><td><pre class="screen">"Monday"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%b</pre></td>
+<td>Abbreviated month name</td>
+</tr>
+<tr><td><pre class="screen">"Feb" =&gt; February</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%B</pre></td>
+<td>Full month name</td>
+</tr>
+<tr><td><pre class="screen">"February"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%c !</pre></td>
+<td>The preferred date and time representation for the current locale.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%C !</pre></td>
+<td>The century number (year/100) as a 2-digit integer.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%d</pre></td>
+<td>Day of the month as decimal 01 to 31</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%D !</pre></td>
+<td>Equivalent to %m/%d/%y</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%e !</pre></td>
+<td>Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%G !</pre></td>
+<td>This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%g !</pre></td>
+<td>Like %G, but without century.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%h !</pre></td>
+<td> Equivalent to %b</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%j</pre></td>
+<td>Day of year as decimal from 001 to 366 for leap years, 001 - 365 for non-leap years.</td>
+</tr>
+<tr><td><pre class="screen">"060" =&gt; Feb-29</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%m</pre></td>
+<td>Month name as a decimal 01 to 12</td>
+</tr>
+<tr><td><pre class="screen">"01" =&gt; January</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%u !</pre></td>
+<td>The day of the week as a decimal, range 1 to 7, Monday being 1.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%U</pre></td>
+<td>The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. In 2005, Jan 1st falls on a Saturday, so therefore it falls within week 00 of 2005 (week 00 spans 2004-Dec-26 to 2005-Jan-01. This also happens to be week 53 of 2004).</td>
+</tr>
+<tr><td><pre class="screen">date d(2005, Jan, 1); // Saturday
+ // with format %U
+ ss &lt;&lt; d; // "00"
+ d += day(1); // Sunday
+ ss &lt;&lt; d; // "01" beginning of week 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%V !</pre></td>
+<td>The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%w</pre></td>
+<td>Weekday as decimal number 0 to 6</td>
+</tr>
+<tr><td><pre class="screen">"0" =&gt; Sunday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%W</pre></td>
+<td>Week number 00 to 53 where Monday is first day of week 1</td>
+</tr>
+<tr><td><pre class="screen">date d(2005, Jan, 2); // Sunday
+ // with format %W
+ ss &lt;&lt; d; // "00"
+ d += day(1); // Monday
+ ss &lt;&lt; d; // "01" beginning of week 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%x</pre></td>
+<td>Implementation defined date format from the locale.</td>
+</tr>
+<tr><td><pre class="screen">date d(2005,Oct,31);
+ date_facet* f = new date_facet("%x");
+
+ locale loc = locale(locale("en_US"), f);
+ cout.imbue(loc);
+ cout &lt;&lt; d; // "10/31/2005"
+
+ loc = locale(locale("de_DE"), f);
+ cout.imbue(loc);
+ cout &lt;&lt; d; // "31.10.2005"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%y</pre></td>
+<td>Two digit year</td>
+</tr>
+<tr><td><pre class="screen">"05" =&gt; 2005</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y</pre></td>
+<td>Four digit year</td>
+</tr>
+<tr><td><pre class="screen">"2005"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d</pre></td>
+<td>Default date format</td>
+</tr>
+<tr><td><pre class="screen">"2005-Apr-01"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y%m%d</pre></td>
+<td>ISO format</td>
+</tr>
+<tr><td><pre class="screen">"20050401"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%m-%d</pre></td>
+<td>ISO extended format</td>
+</tr>
+<tr><td><pre class="screen">"2005-04-01"</pre></td></tr>
+</tbody>
+</table></div>
+<p><a name="date_time_io.time_format_flags"></a>
+ Time Facet Format Flags
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Format Specifier</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%- *!</pre></td>
+<td>Placeholder for the sign of a duration. Only displays when the duration is negative.</td>
+</tr>
+<tr><td><pre class="screen">"-13:15:16"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%+ *!</pre></td>
+<td>Placeholder for the sign of a duration. Always displays for both positive and negative.</td>
+</tr>
+<tr><td><pre class="screen">"+13:15:16"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%f</pre></td>
+<td>Fractional seconds are always used, even when their value is zero</td>
+</tr>
+<tr><td><pre class="screen">"13:15:16.000000"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%F *</pre></td>
+<td>Fractional seconds are used only when their value is not zero.</td>
+</tr>
+<tr><td><pre class="screen">"13:15:16"
+ "05:04:03.001234"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%I !</pre></td>
+<td>The hour as a decimal number using a 12-hour clock</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%k !</pre></td>
+<td>The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%l !</pre></td>
+<td>The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%p !</pre></td>
+<td>Either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%P !</pre></td>
+<td>Like %p but in lowercase: `am' or `pm' or a corresponding string for the current locale.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%r !</pre></td>
+<td>The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to `%I:%M:%S %p'</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%R !</pre></td>
+<td>The time in 24-hour notation (%H:%M)</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%s *</pre></td>
+<td>Seconds with fractional seconds.</td>
+</tr>
+<tr><td><pre class="screen">"59.000000"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%S</pre></td>
+<td>Seconds only</td>
+</tr>
+<tr><td><pre class="screen">"59"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%T !</pre></td>
+<td>The time in 24-hour notation (%H:%M:%S)</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%q</pre></td>
+<td>ISO time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"-0700" // Mountain Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Q</pre></td>
+<td>ISO extended time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"-05:00" // Eastern Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%z *!</pre></td>
+<td>Abbreviated time zone (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"MST" // Mountain Standard Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Z *!</pre></td>
+<td>Full time zone name (output only). This flag is ignored when using the time_facet with a ptime.</td>
+</tr>
+<tr><td><pre class="screen">"EDT" // Eastern Daylight Time</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%ZP *</pre></td>
+<td>Posix time zone string (available to both input and output). This flag is ignored when using the time_facet with a ptime. For complete details on posix time zone strings, see <a href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone class</a>.</td>
+</tr>
+<tr><td><pre class="screen">"EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%x %X</pre></td>
+<td>Implementation defined date/time format from the locale.</td>
+</tr>
+<tr><td><pre class="screen">date d(2005,Oct,31);
+ ptime pt(d, hours(20));
+ time_facet* f = new time_facet("%x %X");
+
+ locale loc = locale(locale("en_US"), f);
+ cout.imbue(loc);
+ cout &lt;&lt; pt; // "10/31/2005 08:00:00 PM"
+
+ loc = locale(locale("de_DE"), f);
+ cout.imbue(loc);
+ cout &lt;&lt; pt; // "31.10.2005 20:00:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y%m%dT%H%M%S%F%q</pre></td>
+<td>ISO format</td>
+</tr>
+<tr><td><pre class="screen">"20051015T131211-0700"
+ // Oct 15, 2005 13:12:11 MST
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%m-%d %H:%M:%S%F%Q</pre></td>
+<td>Extended ISO format</td>
+</tr>
+<tr><td><pre class="screen">"2005-10-15 13:12:11-07:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d %H:%M:%S%F %z</pre></td>
+<td>Default format used when outputting ptime and local_date_time.</td>
+</tr>
+<tr><td><pre class="screen">"2005-Oct-15 13:12:11 MST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%Y-%b-%d %H:%M:%S%F %ZP</pre></td>
+<td>Default format used when inputting ptime and local_date_time.</td>
+</tr>
+<tr><td><pre class="screen">"2005-Oct-15 13:12:11 MST-07"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%-%H:%M:%S%F !</pre></td>
+<td>Default time_duration format for output. Sign will only be displayed for negative durations.</td>
+</tr>
+<tr><td><pre class="screen">"-13:14:15.003400"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">%H:%M:%S%F</pre></td>
+<td>Default time_duration format for input.</td>
+</tr>
+<tr><td><pre class="screen">"13:14:15.003400"</pre></td></tr>
+</tbody>
+</table></div>
+<p>* Signifies flags that have a behavior unique to <code class="computeroutput">date_time</code>.</p>
+<p>! Signifies flags that currently do not work for input.</p>
+</div>
+<p>The following table lists the available facets.</p>
+<a name="io_objects_table"></a><h3>
+<a name="id1010172"></a>IO Objects</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Output</th>
+<th>Input</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><a href="../date_facet.html" title="Class template date_facet">date_facet</a></code></td>
+<td><code class="computeroutput"><a href="../date_input_facet.html" title="Class template date_input_facet">date_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a href="../date_facet.html" title="Class template date_facet">wdate_facet</a></code></td>
+<td><code class="computeroutput"><a href="../date_input_facet.html" title="Class template date_input_facet">wdate_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a href="../time_facet.html" title="Class template time_facet">time_facet</a></code></td>
+<td><code class="computeroutput"><a href="../time_input_facet.html" title="Class template time_input_facet">time_input_facet</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a href="../time_facet.html" title="Class template time_facet">wtime_facet</a></code></td>
+<td><code class="computeroutput"><a href="../time_input_facet.html" title="Class template time_input_facet">wtime_input_facet</a></code></td>
+</tr>
+<tr>
+<td>
+<code class="computeroutput"><a href="../time_facet.html" title="Class template time_facet">local_time_facet</a></code>*</td>
+<td>
+<code class="computeroutput"><a href="../time_input_facet.html" title="Class template time_input_facet">local_time_input_facet</a></code>*</td>
+</tr>
+<tr>
+<td>
+<code class="computeroutput"><a href="../time_facet.html" title="Class template time_facet">wlocal_time_facet</a></code>*</td>
+<td>
+<code class="computeroutput"><a href="../time_input_facet.html" title="Class template time_input_facet">wlocal_time_input_facet</a></code>*</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ * These links lead to the <code class="computeroutput">time_facet</code> and <code class="computeroutput">time_input_facet</code> reference sections. They are not actual classes but typedefs.
+ </p>
+<h3>
+<a name="id1010496"></a>Formatter/Parser Objects</h3>
+<p>To implement the new i/o facets the date-time library uses a number of new parsers and formatters. These classes are available for users that want to implement specialized input/output routines.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Output</th>
+<th>Input</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput"><a href="../period_formatter.html" title="Class template period_formatter">period_formatter</a></code></td>
+<td><code class="computeroutput"><a href="../period_parser.html" title="Class template period_parser">period_parser</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a href="../date_generator_formatter.html" title="Class template date_generator_formatter">date_generator_formatter</a></code></td>
+<td><code class="computeroutput"><a href="../date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a></code></td>
+</tr>
+<tr>
+<td><code class="computeroutput"><a href="../special_values_formatter.html" title="Class template special_values_formatter">special_values_formatter</a></code></td>
+<td><code class="computeroutput"><a href="../special_values_parser.html" title="Class template special_values_parser">special_values_parser</a></code></td>
+</tr>
+<tr>
+<td> </td>
+<td><code class="computeroutput"><a href="../format_date_parser.html" title="Class template format_date_parser">format_date_parser</a></code></td>
+</tr>
+</tbody>
+</table></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.date_facet"></a>Date Facet</h4></div></div></div>
+<a href="date_time_io.html#date_facet_intro">Introduction</a> -
+ <a href="date_time_io.html#date_facet_constr">Construction</a> -
+ <a href="date_time_io.html#date_facet_accessors">Accessors</a><a name="date_facet_intro"></a><h3>
+<a name="id1010652"></a>Introduction</h3>
+<p>The <code class="computeroutput">boost::date_time::date_facet</code> enables users to have significant control over the output streaming of dates (and other gregorian objects). The date_facet is typedef'd in the <code class="computeroutput">gregorian</code> namespace as <code class="computeroutput">date_facet</code> and <code class="computeroutput">wdate_facet</code>.
+ </p>
+<a name="date_facet_constr"></a><h3>
+<a name="id1010690"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_facet(...)
+ Parameters:
+ char_type* format
+ input_collection_type</pre></td>
+<td>Format given will be used for date output. All other formats will use their defaults. Collection is the set of short names to be used for months. All other name collections will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</pre></td>
+<td>Format given will be used for date output. The remaining parameters are formatter objects. Further details on these objects can be found <a href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>. This constructor also provides default arguments for all parameters except the format. Therefore, <code class="computeroutput">date_facet("%m %d %Y")</code> will work.</td>
+</tr>
+</tbody>
+</table></div>
+<a name="date_facet_accessors"></a><h3>
+<a name="id1010773"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(char_type*)</pre></td>
+<td>Set the format for dates.</td>
+</tr>
+<tr><td><pre class="screen">date_facet* f = new date_facet();
+f-&gt;format("%m %d %Y");</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void month_format(char_type*)</pre></td>
+<td>Set the format for months when they are 'put' individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;month_format("%B");
+ss &lt;&lt; greg_month(12); // "December"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void weekday_format(char_type*)</pre></td>
+<td>Set the format for weekdays when they are 'put' individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%a");
+ss &lt;&lt; greg_weekday(2); // "Tue"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void period_formatter(...)
+ Parameter:
+ period_formatter_type</pre></td>
+<td>Replaces the period formatter object with a user created one.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void special_values_formatter(...)
+ Parameter:
+ special_values_formatter_type</pre></td>
+<td>Replaces the special_values formatter object with a user created one.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type
+ date_gen_formatter_type::
+ phrase_elements</pre></td>
+<td>Sets new date generator phrase strings in date_gen_formatter. The input collection is a vector of strings (for details on these strings see <a href="date_time_io.html#io_objects.date_generators">date generator formatter/parser documentation</a>). The phrase_elements parameter is an enum, defined in the date_generator_formatter object, that has a default value of 'first'. It is used to indicate what the position of the first string in the collection will be.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' short weekdays.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' long weekdays.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' short months.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'putting' long months.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ gregorian object</pre></td>
+<td>There are 12 put functions in the date_facet. The common paraeters are: an iterator pointing to the next item in the stream, an ios_base object, and the fill character. Each unique gregorian object has it's own put function. Each unique put function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date)</pre></td>
+<td>Puts a date object into the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., days)</pre></td>
+<td>Puts a days object into the stream as a number.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., month)</pre></td>
+<td>Puts a month object into the stream using the format set by <code class="computeroutput">month_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., day)</pre></td>
+<td>Puts a day of month object into the stream as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01" // January 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., day_of_week)</pre></td>
+<td>Puts a day of week object into the stream using the format set by <code class="computeroutput">weekday_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_period)</pre></td>
+<td>Puts a date_period into the stream. The format of the dates will use the format set by <code class="computeroutput">format(..)</code> or the default date format. The type of period (open or closed range) and the delimiters used are those used by the period_formatter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., partial_date)</pre></td>
+<td>Puts a partial_date date_generator object into the stream. The month format used is set by <code class="computeroutput">month_format(..)</code> or the default. The day of month is represented as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01 Jan" // default formats
+"01 January" // long month format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</pre></td>
+<td>Puts a nth_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"third Fri in May" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</pre></td>
+<td>Puts a first_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Wed of Jun" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</pre></td>
+<td>Puts a last_day_of_the_week_in_month object into the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"last Tue of Mar" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</pre></td>
+<td>Puts a first_day_of_the_week_after object into the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Sat after" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</pre></td>
+<td>Puts a first_day_of_the_week_before object into the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_formatter</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Mon before" // defaults</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.date_input_facet"></a>Date Input Facet</h4></div></div></div>
+<a href="date_time_io.html#date_input_facet_intro">Introduction</a> -
+ <a href="date_time_io.html#date_input_facet_constr">Construction</a> -
+ <a href="date_time_io.html#date_input_facet_accessors">Accessors</a><a name="date_input_facet_intro"></a><h3>
+<a name="id1011541"></a>Introduction</h3>
+<p>The <code class="computeroutput">boost::date_time::date_input_facet</code> enables users to have significant control how dates (and other gregorian objects) are streamed in. The date_input_facet is typedef'd in the <code class="computeroutput">gregorian</code> namespace as <code class="computeroutput">date_input_facet</code> and <code class="computeroutput">wdate_input_facet</code>.
+ </p>
+<a name="date_input_facet_constr"></a><h3>
+<a name="id1011580"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet(string_type format)</pre></td>
+<td>Format given will be used for date input. All other formats will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</pre></td>
+<td>Format given will be used for date input. The remaining parameters are parser objects. Further details on these objects can be found <a href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>.</td>
+</tr>
+</tbody>
+</table></div>
+<a name="date_input_facet_accessors"></a><h3>
+<a name="id1011652"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(char_type*)</pre></td>
+<td>Set the format for dates.</td>
+</tr>
+<tr><td><pre class="screen">date_input_facet* f =
+ new date_input_facet();
+f-&gt;format("%m %d %Y");</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void month_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing months individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;month_format("%B");
+ss.str("March");
+ss &gt;&gt; m; // March</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void weekday_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing weekdays individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%a");
+ss.str("Sun");
+ss &gt;&gt; wd; // Sunday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void year_format(char_type*)</pre></td>
+<td>Set the format when 'get'ing years individually.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;weekday_format("%y");
+ss.str("04");
+ss &gt;&gt; year; // 2004</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void period_parser(...)
+ Parameter:
+ period_parser_type</pre></td>
+<td>Replaces the period parser object with a user created one.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void special_values_parser(...)
+ Parameter:
+ special_values_parser_type</pre></td>
+<td>Replaces the special_values parser object with a user created one.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void date_gen_phrase_strings(...)
+ Parameters:
+ input_collection_type</pre></td>
+<td>Sets new date generator phrase strings in date_gen_parser. The input collection is a vector of strings (for details on these strings see <a href="date_time_io.html#io_objects.date_generators">date generator formatter/parser documentation</a>).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' short weekdays.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' long weekdays.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' short months.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type</pre></td>
+<td>Replace strings used when 'getting' long months.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</pre></td>
+<td>There are 13 get functions in the date_input_facet. The common parameters are: an iterator pointing to the begining of the stream, an iterator pointing to the end of the stream, and an ios_base object. Each unique gregorian object has it's own get function. Each unique get function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date)</pre></td>
+<td>Gets a date object from the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("2005-Jan-01");
+ss &gt;&gt; d; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., month)</pre></td>
+<td>Gets a month object from the stream using the format set by <code class="computeroutput">month_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("Feb");
+ss &gt;&gt; m; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., day_of_week)</pre></td>
+<td>Gets a day of week object from the stream using the format set by <code class="computeroutput">weekday_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("Sun");
+ss &gt;&gt; dow; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., day)</pre></td>
+<td>Gets a day of month object from the stream as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01" // January 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., year)</pre></td>
+<td>Gets a year object from the stream as a number. The number of expected digits depends on the year format.</td>
+</tr>
+<tr><td><pre class="screen">ss/str("2005");
+ss &gt;&gt; y; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., days)</pre></td>
+<td>Gets a days object from the stream as a number.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("356");
+ss &gt;&gt; dys; // a full year</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_period)</pre></td>
+<td>Gets a date_period from the stream. The format of the dates will use the format set by <code class="computeroutput">format(..)</code> or the default date format. The type of period (open or closed range) and the delimiters used are those used by the period_parser.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., partial_date)</pre></td>
+<td>Gets a partial_date date_generator object from the stream. The month format used is set by <code class="computeroutput">month_format(..)</code> or the default. The day of month is represented as a two digit number.</td>
+</tr>
+<tr><td><pre class="screen">"01 Jan" // default formats
+"01 January" // long month format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ nth_day_of_the_week_in_month</pre></td>
+<td>Gets a nth_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"third Fri in May" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_in_month</pre></td>
+<td>Gets a first_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Wed of Jun" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ last_day_of_the_week_in_month</pre></td>
+<td>Gets a last_day_of_the_week_in_month object from the stream. The month format is set by <code class="computeroutput">month_format(...)</code> or the default. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"last Tue of Mar" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_after</pre></td>
+<td>Gets a first_day_of_the_week_after object from the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Sat after" // defaults</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., date_generator)
+ Date Generator Type:
+ first_day_of_the_week_before</pre></td>
+<td>Gets a first_day_of_the_week_before object from the stream. The weekday format is set by <code class="computeroutput">weekday_format(...)</code> or the default. The remaining phrase elements are set in the <a href="date_time_io.html#io_objects.date_generators">date_generator_parser</a>.</td>
+</tr>
+<tr><td><pre class="screen">"first Mon before" // defaults</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.time_facet"></a>Time Facet</h4></div></div></div>
+<a href="date_time_io.html#time_facet_intro">Introduction</a> -
+ <a href="date_time_io.html#time_facet_constr">Construction</a> -
+ <a href="date_time_io.html#time_facet_accessors">Accessors</a><a name="time_facet_intro"></a><h3>
+<a name="id1012477"></a>Introduction</h3>
+<p>The <code class="computeroutput">boost::date_time::time_facet</code> is an extension of the <code class="computeroutput">boost::date_time::date_facet</code>. The time_facet is typedef'ed in the <code class="computeroutput">posix_time</code> namespace as <code class="computeroutput">time_facet</code> and <code class="computeroutput">wtime_facet</code>. It is typedef'd in the <code class="computeroutput">local_time</code> namespace as <code class="computeroutput">local_time_facet</code> and <code class="computeroutput">wlocal_time_facet</code>.
+ </p>
+<a name="time_facet_constr"></a><h3>
+<a name="id1012538"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">time_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_facet(...)
+ Parameters:
+ char_type* format
+ period_formatter_type
+ special_values_formatter_type
+ date_gen_formatter_type</pre></td>
+<td>Format given will be used for time output. The remaining parameters are formatter objects. Further details on these objects can be found <a href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>. This constructor also provides default arguments for all parameters except the format. Therefore, <code class="computeroutput">time_facet("%H:%M:S %m %d %Y")</code> will work.</td>
+</tr>
+</tbody>
+</table></div>
+<a name="time_facet_accessors"></a><h3>
+<a name="id1012605"></a>Accessors</h3>
+<p>
+ The time_facet inherits all the public date_facet methods. Therefore, the date_facet methods are not listed here. Instead, they can be found by following <a href="date_time_io.html#date_time.date_facet" title="Date Facet">this</a> link.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void time_duration_format(...)
+ Parameter:
+ char_type*</pre></td>
+<td>Sets the time_duration format. The time_duration format has the ability to display the sign of the duration. The <code class="computeroutput">'%+'</code> flag will always display the sign. The <code class="computeroutput">'%-'</code> will only display if the sign is negative. Currently the '-' and '+' characters are used to denote the sign.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;time_duration_format("%+%H:%M");
+// hours and minutes only w/ sign always displayed
+time_duration td1(3, 15, 56);
+time_duration td2(-12, 25, 32);
+ss &lt;&lt; td1; // "+03:15:56"
+ss &lt;&lt; td2; // "-12:25:56"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the date and time format to ISO.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date and time format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F%Q"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(...)
+ Common parameters for all
+ 'put' functions:
+ OutItrT
+ ios_base
+ char_type
+ Unique parameter for 'put' funcs:
+ posix_time object</pre></td>
+<td>There are 3 put functions in the time_facet. The common parameters are: an iterator pointing to the next item in the stream, an ios_base object, and the fill character. Each unique posix_time object has it's own put function. Each unique put function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., ptime)</pre></td>
+<td>Puts a ptime object into the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., time_duration)</pre></td>
+<td>Puts a time_duration object into the stream using the format set by <code class="computeroutput">time_duration_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put(..., time_period)</pre></td>
+<td>Puts a time_period into the stream. The format of the dates and times will use the format set by <code class="computeroutput">format(..)</code> or the default date/time format. The type of period (open or closed range) and the delimiters used are those used by the period_formatter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.time_input_facet"></a>Time Input Facet</h4></div></div></div>
+<a href="date_time_io.html#time_input_facet_intro">Introduction</a> -
+ <a href="date_time_io.html#time_input_facet_constr">Construction</a> -
+ <a href="date_time_io.html#time_input_facet_accessors">Accessors</a><a name="time_input_facet_intro"></a><h3>
+<a name="id1012874"></a>Introduction</h3>
+<p>The <code class="computeroutput">boost::date_time::time_input_facet</code> is an extension of the <code class="computeroutput">date_input_facet</code>. It is typedef'ed in the <code class="computeroutput">boost::posix_time</code> namespace as <code class="computeroutput">time_input_facet</code> and <code class="computeroutput">wtime_input_facet</code>. It is typedef'ed in the <code class="computeroutput">boost::local_time</code> namespace as <code class="computeroutput">local_time_input_facet</code> and <code class="computeroutput">wlocal_time_input_facet</code>.
+ </p>
+<a name="time_input_facet_constr"></a><h3>
+<a name="id1012937"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet()</pre></td>
+<td>Default constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet(string_type)</pre></td>
+<td>Format given will be used for date/time input. All other formats will use their defaults.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">time_input_facet(...)
+ Parameters:
+ string_type format
+ format_date_parser_type
+ special_values_parser_type
+ period_parser_type
+ date_gen_parser_type</pre></td>
+<td>Format given will be used for date/time input. The remaining parameters are parser objects. Further details on these objects can be found <a href="date_time_io.html#date_time.io_objects" title="Date Time Formatter/Parser Objects">here</a>.</td>
+</tr>
+</tbody>
+</table></div>
+<a name="time_input_facet_accessors"></a><h3>
+<a name="id1013008"></a>Accessors</h3>
+<p>
+ The time_input_facet inherits all the public date_input_facet methods. Therefore, the date_input_facet methods are not listed here. Instead, they can be found by following <a href="date_time_io.html#date_time.date_input_facet" title="Date Input Facet">this</a> link.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_format()</pre></td>
+<td>Sets the time format to ISO</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_format();
+// "%Y%m%dT%H%M%S%F%q"
+"20051225T132536.789-0700"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void set_iso_extended_format()</pre></td>
+<td>Sets the date format to ISO Extended</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;set_iso_extended_format();
+// "%Y-%m-%d %H:%M:%S%F %Q"
+"2005-12-25 13:25:36.789 -07:00"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void time_duration_format(...)
+ Parameter:
+ char_type*</pre></td>
+<td>Sets the time_duration format.</td>
+</tr>
+<tr><td><pre class="screen">f-&gt;time_duration_format("%H:%M");
+// hours and minutes only</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(...)
+ Common parameters for all
+ 'get' functions:
+ InItrT from
+ InItrT to
+ ios_base
+ Unique parameter for 'get' funcs:
+ gregorian object</pre></td>
+<td>There are 3 get functions in the time_input_facet. The common parameters are: an iterator pointing to the begining of the stream, an iterator pointing to the end of the stream, and an ios_base object. Each unique gregorian object has it's own get function. Each unique get function is described below.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., ptime)</pre></td>
+<td>Gets a ptime object from the stream using the format set by <code class="computeroutput">format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("2005-Jan-01 13:12:01");
+ss &gt;&gt; pt; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., time_duration)</pre></td>
+<td>Gets a time_duration object from the stream using the format set by <code class="computeroutput">time_duration_format(...)</code> or the default.</td>
+</tr>
+<tr><td><pre class="screen">ss.str("01:25:15.000123000");
+ss &gt;&gt; td; // default format</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">InItrT get(..., time_period)</pre></td>
+<td>Gets a time_period from the stream. The format of the dates/times will use the format set by <code class="computeroutput">format(..)</code> or the default date and time format. The type of period (open or closed range) and the delimiters used are those used by the period_parser.</td>
+</tr>
+<tr><td>see the <a href="date_time_io.html#date_time.io_tutorial" title="Date Time IO Tutorial">tutorial</a> for a complete example.</td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.io_objects"></a>Date Time Formatter/Parser Objects</h4></div></div></div>
+<h2>
+<a name="id1013242"></a>Date Time Formatter/Parser Objects</h2>
+<a href="date_time_io.html#io_objects.periods">Periods</a> |
+ <a href="date_time_io.html#io_objects.date_generators">Date Generators</a> |
+ <a href="date_time_io.html#io_objects.special_values">Special Values</a> |
+ <a href="date_time_io.html#io_objects.format_date_parser">Format Date Parser</a><a name="io_objects.periods"></a><h3>
+<a name="id1013285"></a>Periods</h3>
+<p>The period_formatter and period_parser provide a uniform interface for the input and output of date_periods, time_periods, and in a future release, local_date_time_periods. The user has control over the delimiters, formats of the date/time components, and the form the period takes. The format of the date/time components is controlled via the date_time input and output facets.</p>
+<h4>
+<a name="id1013298"></a>Period Form</h4>
+<p>Periods are constructed with open ranged parameters. The first value is the starting point, and is included in the period. The end value is not included but immediately follows the last value: [begin/end). However, a period can be streamed as either an open range or a closed range.</p>
+<pre class="screen">[2003-Jan-01/2003-Dec-31] &lt;-- period holding 365 days
+[2003-Jan-01/2004-Jan-01) &lt;-- period holding 365 days</pre>
+<h4>
+<a name="id1013314"></a>Delimiters</h4>
+<p>There are four delimiters. The default values are</p>
+<table class="simplelist" border="0" summary="Simple list">
+<tr><td>"\" - separator</td></tr>
+<tr><td>"[" - start delimiter</td></tr>
+<tr><td>")" - open range end delimiter</td></tr>
+<tr><td>"]" - closed range end delimiter</td></tr>
+</table>
+<p>A user can provide a custom set of delimiters. Custom delimiters may contain spaces.</p>
+<h4>
+<a name="id1013343"></a>Customization</h4>
+<p>The period form and delimiters can be set as construction parameters or by means of accessor functions. A custom period parser/formatter can then be used as a construction parameter to a new facet, or can be set in an existing facet via an accessor function.</p>
+<h4>
+<a name="id1013354"></a>Period Formatter/Parser Reference</h4>
+ The complete class reference can be found here: <code class="computeroutput"><a href="../period_formatter.html" title="Class template period_formatter">Period Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a href="../period_parser.html" title="Class template period_parser">Period Parser Doxygen Reference</a></code><h4>
+<a name="id1013383"></a>Period Formatter Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">period_formatter(...)
+ Parameters:
+ range_display_options
+ char_type*
+ char_type*
+ char_type*
+ char_type*</pre></td>
+<td>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code class="computeroutput">range_display_options</code> is a public type enum of the <code class="computeroutput">period_formatter</code> class. The possible choices are AS_OPEN_RANGE or AS_CLOSED_RANGE. The closed range is the default. A period has three significant points: the begining, the last, and the end. A closed range period takes the form [begin,end), where an open range period takes the form [begin,last]. The four char_type* parameters are: the period separator, the start delimiter, the open range end delimiter, and the closed range end delimiter.</td>
+</tr></tbody>
+</table></div>
+<h4>
+<a name="id1013438"></a>Period Formatter Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">range_display_options range_option()</pre></td>
+<td>Returns the current setting for the range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void range_option(...)
+ Parameter:
+ range_display_options</pre></td>
+<td>Sets the option for range display (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</pre></td>
+<td>Set new delimiter strings in the formatter.</td>
+</tr>
+<tr><td><pre class="screen">string beg("-&gt;| ");
+string sep(" || ");
+string opn(" -&gt;|");
+string clo(" |&lt;-");
+pf.delimiter_strings(beg, sep,
+ opn, clo);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_start_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the start delimiter into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_sepatator(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the separator into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_period_end_delimeter(...)
+ Return Type:
+ OutItrT
+ Parameter:
+ OutItrT</pre></td>
+<td>Puts the end delimiter into the stream at position pointed to by OutItrT parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put_period(...)
+ Parameters:
+ OutItrT
+ ios_base
+ char_type
+ period_type
+ facet_type</pre></td>
+<td>Puts a period into the stream using the set values for delimiters, separator, and range display. The facet parameter is used to put the date (or time) objects of the period.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1013620"></a>Period Parser Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">period_parser(...)
+ Parameters:
+ period_range_option
+ char_type*
+ char_type*
+ char_type*
+ char_type*</pre></td>
+<td>NOTE: All five construction parameters have default values so this constructor also doubles as the default constructor. The <code class="computeroutput">period_range_option</code> is a public type enum of the <code class="computeroutput">period_parser</code> class. The possible choices are AS_OPEN_RANGE or AS_CLOSED_RANGE. The closed range is the default. A period has three significant points: the begining, the last, and the end. A closed range period takes the form [begin,end), where an open range period takes the form [begin,last]. The four char_type* parameters are: the period separator, the start delimiter, the open range end delimiter, and the closed range end delimiter.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">period_parser(period_parser)</pre></td>
+<td>Copy constructor</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1031162"></a>Period Parser Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">period_range_option range_option()</pre></td>
+<td>Returns the current setting for the period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void range_option(...)
+ Parameter:
+ period_range_option </pre></td>
+<td>Sets the option for period range (either AS_OPEN_RANGE or AS_CLOSED_RANGE).</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void delimiter_strings(...)
+ Parameters:
+ string_type
+ string_type
+ string_type
+ string_type</pre></td>
+<td>Set new delimiter strings in the parser.</td>
+</tr>
+<tr><td><pre class="screen">string beg("-&gt;| ");
+string sep(" || ");
+string opn(" -&gt;|");
+string clo(" |&lt;-");
+pp.delimiter_strings(beg, sep,
+ opn, clo);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">collection_type delimiter_strings()</pre></td>
+<td>Returns the set of delimiter strings currently held in the parser.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">period_type get_period(...)
+ Parameters:
+ stream_itr_type
+ stream_itr_type
+ ios_base
+ period_type
+ duration_type
+ facet_type</pre></td>
+<td>Parses a period from the stream. The iterator parameters point to the begining and end of the stream. The duration_type is relevant to the period type, for example: A <code class="computeroutput">date_period</code> would use <code class="computeroutput">days</code> as a duration_type. The period will be parsed according to the formats and strings found in the facet parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+</tbody>
+</table></div>
+<p>_____________________________________________________</p>
+<a name="io_objects.date_generators"></a><h3>
+<a name="id1031318"></a>Date Generators</h3>
+<p>The date_generator formatter and parser provide flexibility by allowing the user to use custom "phrase elements". These phrase elements are the "in-between" words in the date_generators. For example, in the date_generator "Second Monday of March", "Second" and "of" are the phrase elements, where "Monday" and "March" are the date elements. Customization of the date elements is done with the facet. The order of the date and phrase elements cannot be changed. When parsing, all elements of the date_generator phrase must parse correctly or an ios_base::failure exception will be thrown.</p>
+<h4>
+<a name="id1031325"></a>Customization</h4>
+<p>The default "phrase_strings" are:
+ </p>
+<table class="simplelist" border="0" summary="Simple list"><tr>
+<td>"first"</td>
+<td>"second"</td>
+<td>"third"</td>
+<td>"fourth"</td>
+<td>"fifth"</td>
+<td>"last"</td>
+<td>"before"</td>
+<td>"after"</td>
+<td>"of"</td>
+</tr></table>
+<p>
+ A custom set of phrase_strings must maintain this order of occurance (Ex: "1st", "2nd", "3rd", "4th", "5th", "last", "prior", "past", "in").</p>
+<p> Examples using default phrase_strings and default facet formats for weekday &amp; month: </p>
+<pre class="screen">"first Tue of Mar"</pre>
+<p>And using custom phrase_strings: </p>
+<pre class="screen">"1st Tue in Mar"</pre>
+<p>The custom set of phrase elements can be set as construction parameters or through an accessor function.A custom date_generator parser/formatter can then be used as a construction parameter to a new facet, or can be set in an existing facet via an accessor function.</p>
+<p>IMPORTANT NOTE: Prior to 1.33, partial_date was output as "1 Jan" with a single *or* double digit number for the day. The new behavior is to *always* place a double digit number for the day - "01 Jan".</p>
+<h4>
+<a name="id1031392"></a>Date Generator Reference</h4>
+ The complete class references can be found here: <code class="computeroutput"><a href="../date_generator_formatter.html" title="Class template date_generator_formatter">Date Generator Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a href="../date_generator_parser.html" title="Class template date_generator_parser">Date Generator Parser Doxygen Reference</a></code><h4>
+<a name="id1031421"></a>Date Generator Formatter Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_generator_formatter()</pre></td>
+<td>Uses the default date generator elements.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_formatter(...)
+ Parameters:
+ string_type first_element
+ string_type second_element
+ string_type third_element
+ string_type fourth_element
+ string_type fifth_element
+ string_type last_element
+ string_type before_element
+ string_type after_element
+ string_type of_element</pre></td>
+<td>Constructs a date_generator_formatter using the given element strings.</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1031470"></a>Date Generator Formatter Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void elements(...)
+ Parameters:
+ collection_type
+ phrase_elements</pre></td>
+<td>Replace the current phrase elements with a collection of new ones. The <code class="computeroutput">phrase_elements</code> parameter is an enum that indicates what the first element in the new collection is (defaults to first).</td>
+</tr>
+<tr><td><pre class="screen">// col is a collection holding
+// "final", "prior", "following",
+// and "in"
+typedef date_generator_formatter dgf;
+dgf formatter();
+formatter.elements(col, dgf::last);
+// complete elements in dgf are now:
+"first", "second", "third",
+"fourth", "fifth", "final",
+"prior", "following", and "in"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_partial_date(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ partial_date
+ facet_type</pre></td>
+<td>A put function for partial_date. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a partial_date =&gt; "dd Month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_nth_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ nth_kday_type
+ facet_type</pre></td>
+<td>A put function for nth_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put an nth_day_of_the_week_in_month =&gt; "nth weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_first_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ first_kday_type
+ facet_type</pre></td>
+<td>A put function for first_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_in_month =&gt; "first weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_last_kday(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ last_kday_type
+ facet_type</pre></td>
+<td>A put function for last_kday_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a last_day_of_the_week_in_month =&gt; "last weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_kday_before(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_before_type
+ facet_type</pre></td>
+<td>A put function for kday_before_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_before =&gt; "weekday before"</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">put_kday_after(...)
+ Return Type:
+ facet_type::OutItrT
+ Parameters:
+ OutItrT next
+ ios_base
+ char_type fill
+ kday_after_type
+ facet_type</pre></td>
+<td>A put function for kday_after_type. This is a templated function that takes a facet_type as a parameter.</td>
+</tr>
+<tr><td>Put a first_day_of_the_week_after =&gt; "weekday after".</td></tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1031660"></a>Date Generator Parser Construction</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser()</pre></td>
+<td>Uses the default date generator elements.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser(...)
+ Parameter:
+ date_generator_parser</pre></td>
+<td>Copy Constructor</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">date_generator_parser(...)
+ Parameters:
+ string_type first_element
+ string_type second_element
+ string_type third_element
+ string_type fourth_element
+ string_type fifth_element
+ string_type last_element
+ string_type before_element
+ string_type after_element
+ string_type of_element</pre></td>
+<td>Constructs a date_generator_parser using the given element strings.</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1031721"></a>Date Generator Parser Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void element_strings(...)
+ Parameter:
+ collection_type</pre></td>
+<td>Replace the set of date generator element string with a new set.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void element_strings(...)
+ Parameters:
+ string_type first
+ string_type second
+ string_type third
+ string_type fourth
+ string_type fifth
+ string_type last
+ string_type before
+ string_type after
+ string_type of</pre></td>
+<td>Replace the set of date generator elements with new values.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_partial_date_type(...)
+ Return Type:
+ facet_type::partial_date_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a partial_date =&gt; "dd Month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_nth_kday_type(...)
+ Return Type:
+ facet_type::nth_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses an nth_day_of_the_week_in_month =&gt; "nth weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_first_kday_type(...)
+ Return Type:
+ facet_type::firat_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_in_month =&gt; "first weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_last_kday_type(...)
+ Return Type:
+ facet_type::last_kday_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a last_day_of_the_week_in_month =&gt; "last weekday of month".</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_kday_before_type(...)
+ Return Type:
+ facet_type::kday_before_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_before =&gt; "weekday before"</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">get_kday_after_type(...)
+ Return Type:
+ facet_type::kday_after_type
+ Parameters:
+ stream_itr_type next
+ stream_itr_type str_end
+ ios_base
+ facet_type</pre></td>
+<td>A templated function that parses a date_generator from the stream.</td>
+</tr>
+<tr><td>Parses a first_day_of_the_week_after =&gt; "weekday after".</td></tr>
+</tbody>
+</table></div>
+<p>_____________________________________________________</p>
+<a name="io_objects.special_values"></a><h3>
+<a name="id1031926"></a>Special Values</h3>
+<p>The date_time library uses five special_values. They are:
+ </p>
+<table class="simplelist" border="0" summary="Simple list"><tr>
+<td>not_a_date_time</td>
+<td>neg_infin</td>
+<td>pos_infin</td>
+<td>min_date_time</td>
+<td>max_date_time</td>
+</tr></table>
+<p>The default set of strings used to represent these types are: "not-a-date-time", "-infinity", "+infinity", "minimum-date-time", "maximum-date-time". When output, the min_date-time and max_date_time appear as normal date/time representations: "1400-Jan-01" and "9999-Dec-31" repectively.</p>
+<h4>
+<a name="id1031957"></a>Customization</h4>
+<p>The special values parser/formatter allows the user to set custom strings for these special values. These strings can be set as construction parameters to a new facet, or can be set in an existing facet via an accessor function.</p>
+<h4>
+<a name="id1031968"></a>Special Values Formatter/Parser Reference</h4>
+ The complete class references can be found here: <code class="computeroutput"><a href="../special_values_formatter.html" title="Class template special_values_formatter">Special Values Formatter Doxygen Reference</a></code> and here: <code class="computeroutput"><a href="../special_values_parser.html" title="Class template special_values_parser">Special Values Parser Doxygen Reference</a></code><h4>
+<a name="id1031997"></a>Special Values Formatter Constructor</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter()</pre></td>
+<td>Constructor uses defaults for special value strings.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</pre></td>
+<td>Constructs using values in collection. NOTE: Only the first three strings of the collection will be used. Strings for minimum_date_time and maximum_date_time are ignored as those special values are output as normal dates/times.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_formatter(...)
+ Parameters:
+ char_type*
+ char_type*</pre></td>
+<td>Constructs special values formatter from an array of strings.</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1032060"></a>Special Values Formatter Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">OutItrT put_special(...)
+ Parameters:
+ OutItrT next
+ special_values value</pre></td>
+<td>Puts the given special value into the stream.</td>
+</tr>
+<tr><td><pre class="screen">date d1(not_a_date_time);
+date d2(minimum_date_time);
+special_values_formatter formatter;
+formatter.put_special(itr, d1);
+// Puts: "not-a-date-time"
+formatter.put_special(itr, d2);
+// Puts: "1400-Jan-01"</pre></td></tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1032112"></a>Special Values Parser Constructor</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser()</pre></td>
+<td> </td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameters:
+ collection_type::iterator
+ collection_type::iterator</pre></td>
+<td>Constructs a special values parser using the strings in the collection.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameter:
+ scpecial_values_parser</pre></td>
+<td>Copy constructor.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">special_values_parser(...)
+ Parameters:
+ string_type nadt_str
+ string_type neg_inf_str
+ string_type pos_inf_str
+ string_type min_dt_str
+ string_type max_dt_str</pre></td>
+<td>Constructs a special values parser using the supplied strings.</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1032184"></a>Special Values Parser Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void sv_strings(...)
+ Parameters:
+ string_type nadt_str
+ string_type neg_inf_str
+ string_type pos_inf_str
+ string_type min_dt_str
+ string_type max_dt_str</pre></td>
+<td>Replace the set of special value strings with the given ones.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool match(...)
+ Parameters:
+ stream_itr_type beg
+ stream_itr_type end
+ match_results</pre></td>
+<td>Returns true if parse was successful. Upon a successful parse, <code class="computeroutput">mr.current_match</code> will be set an int values corresponding to the equivalent special_value.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "maximum_date_time"
+typedef special_values_parser svp;
+svp parser;
+svp::match_results mr;
+if(parser.match(itr, str_end, mr)) {
+ d = date(static_cast&lt;special_values&gt;(
+ mr.match_results))
+} else {
+ // error, failed parse
+}
+// d == "9999-Dec-31"</pre></td></tr>
+</tbody>
+</table></div>
+<p>_____________________________________________________</p>
+<a name="io_objects.format_date_parser"></a><h3>
+<a name="id1032260"></a>Format Date Parser</h3>
+<p>The format date parser is the object that holds the strings for months and weekday names, as well as their abbreviations. Custom sets of strings can be set at construction time, or, the strings in an existing format_date_parser can be replaced through accessor functions. Both the constructor and the accessor functions take a vector of strings as their arguments.</p>
+<h4>
+<a name="id1032286"></a>Format Date Parser Reference</h4>
+ The complete class reference can be found here: <code class="computeroutput"><a href="../format_date_parser.html" title="Class template format_date_parser">Doxygen Reference</a></code><h4>
+<a name="id1032304"></a>Format Date Parser Constructor</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ string_type format
+ std::locale</pre></td>
+<td>Creates a parser that uses the given format for parsing dates (in those functions where there is no format parameter). The names and abbreviations used are extracted from the given locale.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ string_type format
+ input_collection_type
+ input_collection_type
+ input_collection_type
+ input_collection_type</pre></td>
+<td>Creates a parser from using the given components. The input_collection_type parameters are for: short month names, long month names, short weekday names, and long weekday names (in that order). These collections must contain values for every month and every weekday (begining with January and Sunday).</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">format_date_parser(...)
+ Parameters:
+ format_date_parser</pre></td>
+<td>Copy Constructor</td>
+</tr>
+</tbody>
+</table></div>
+<h4>
+<a name="id1032372"></a>Format Date Parser Accessors</h4>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">string_type format()</pre></td>
+<td>Returns the format that will be used when parsing dates in those functions where there is no format parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void format(string_type)</pre></td>
+<td>Sets the format that will be used when parsing dates in those functions where there is no format parameter.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_month_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the short month names used by the parser. The collection must contain values for each month, starting with January.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_month_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the long month names used by the parser. The collection must contain values for each month, starting with January.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void short_weekday_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the short weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void long_weekday_names(...)
+ Parameter:
+ input_collection_type names</pre></td>
+<td>Replace the long weekday names used by the parser. The collection must contain values for each weekday, starting with Sunday.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ string_type input
+ string_type format
+ special_values_parser</pre></td>
+<td>Parse a date from the given input using the given format.</td>
+</tr>
+<tr><td><pre class="screen">string inp("2005-Apr-15");
+string format("%Y-%b-%d");
+date d;
+d = parser.parse_date(inp,
+ format,
+ svp);
+// d == 2005-Apr-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ special_values_parser</pre></td>
+<td>Parse a date from stream using the parser's format.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_type parse_date(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format
+ special_values_parser</pre></td>
+<td>Parse a date from stream using the given format.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "2005-04-15"
+string format("%Y-%m-%d");
+date d;
+d = parser.parse_date(itr,
+ str_end,
+ format,
+ svp);
+// d == 2005-Apr-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">month_type parse_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parses a month from stream using given format. Throws bad_month if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "March"
+string format("%B");
+greg_month m;
+m = parser.parse_month(itr,
+ str_end,
+ format);
+// m == March</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_type parse_day_of_the_month(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end</pre></td>
+<td>Parses a day from stream. The day must appear as a number (1-31) or a bad_day_of_month will be thrown.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "01"
+greg_day d;
+d = parser.parse_day_of_month(itr,
+ str_end);
+// d == 1st</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_of_week_type parse_weekday(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parse a weekday from stream according to the given format. Throws a bad_weekday if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "Tue"
+string format("%a");
+greg_weekday wd;
+wd = parser.parse_weekday(itr,
+ str_end,
+ format);
+// wd == Tuesday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_type parse_year(...)
+ Parameters:
+ istreambuf_iterator input
+ istreambuf_iterator str_end
+ string_type format</pre></td>
+<td>Parse a year from stream according to given format. Throws bad year if unable to parse.</td>
+</tr>
+<tr><td><pre class="screen">// stream holds "98"
+string format("%y");
+greg_year y;
+y = parser.parse_year(itr,
+ str_end,
+ format);
+// y == 1998</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.io_tutorial"></a>Date Time IO Tutorial</h4></div></div></div>
+<h2>
+<a name="id1032705"></a>Date Time IO Tutorial</h2>
+<a href="date_time_io.html#basic_use">Basic Use</a> |
+ <a href="date_time_io.html#format_strings">Format Strings</a> |
+ <a href="date_time_io.html#content_strings">Content Strings</a> |
+ <a href="date_time_io.html#tut_sv">Special Values</a> |
+ <a href="date_time_io.html#tut_dper">Date/Time Periods</a> |
+ <a href="date_time_io.html#tut_dgen">Date Generators</a><a name="basic_use"></a><h4>
+<a name="id1032761"></a>Basic Use</h4>
+<p>Facets are automatically imbued when operators '&gt;&gt;' and '&lt;&lt;' are called. The list of date_time objects that can be streamed are:</p>
+<h5>
+<a name="id1032767"></a>Gregorian</h5>
+<p><code class="computeroutput">date</code>,
+ <code class="computeroutput">days</code>,
+ <code class="computeroutput">date_period</code>,
+ <code class="computeroutput">greg_month</code>,
+ <code class="computeroutput">greg_weekday</code>,
+ <code class="computeroutput">greg_year</code>,
+ <code class="computeroutput">partial_date</code>,
+ <code class="computeroutput">nth_day_of_the_week_in_month</code>,
+ <code class="computeroutput">first_day_of_the_week_in_month</code>,
+ <code class="computeroutput">last_day_of_the_week_in_month</code>,
+ <code class="computeroutput">first_day_of_the_week_after</code>,
+ <code class="computeroutput">first_day_of_the_week_before</code></p>
+<h5>
+<a name="id1032851"></a>Posix_time</h5>
+<p><code class="computeroutput">ptime</code>,
+ <code class="computeroutput">time_period</code>,
+ <code class="computeroutput">time_duration</code></p>
+<h5>
+<a name="id1032873"></a>Local_time</h5>
+<p><code class="computeroutput">local_date_time</code></p>
+<p>
+ The following example is of the basic use of the new IO code, utilizing all the defaults. (this example can be found in the <code class="computeroutput">libs/date_time/examples/tutorial</code> directory)
+ </p>
+<pre class="programlisting">
+ date d(2004, Feb, 29);
+ time_duration td(12,34,56,789);
+ stringstream ss;
+ ss &lt;&lt; d &lt;&lt; ' ' &lt;&lt; td;
+ ptime pt(not_a_date_time);
+ cout &lt;&lt; pt &lt;&lt; endl; // "not-a-date-time"
+ ss &gt;&gt; pt;
+ cout &lt;&lt; pt &lt;&lt; endl; // "2004-Feb-29 12:34:56.000789"
+ ss.str("");
+ ss &lt;&lt; pt &lt;&lt; " EDT-05EDT,M4.1.0,M10.5.0";
+ local_date_time ldt(not_a_date_time);
+ ss &gt;&gt; ldt;
+ cout &lt;&lt; ldt &lt;&lt; endl; // "2004-Feb-29 12:34:56.000789 EDT"
+ </pre>
+<p>This example used the default settings for the input and output facets. The default formats are such that interoperability like that shown in the example is possible. NOTE: Input streaming of local_date_time can only be done with a <a href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix time zone string</a>. The default output format uses a time zone abbreviation. The format can be changed so out and in match (as we will see later in this tutorial).</p>
+<a name="format_strings"></a><h4>
+<a name="id1032917"></a>Format Strings</h4>
+<p>The format strings control the order, type, and style of the date/time elements used. The facets provide some predefined formats (iso_format_specifier, iso_format_extended_specifier, and default_date_format) but the user can easily create their own.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ local_time_facet* output_facet = new local_time_facet();
+ local_time_input_facet* input_facet = new local_time_input_facet();
+ ss.imbue(locale(locale::classic(), output_facet));
+ ss.imbue(locale(ss.getloc(), input_facet));
+
+ output_facet-&gt;format("%a %b %d, %H:%M %z");
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Sun Feb 29, 12:34 EDT"
+
+ output_facet-&gt;format(local_time_facet::iso_time_format_specifier);
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "20040229T123456.000789-0500"
+
+ output_facet-&gt;format(local_time_facet::iso_time_format_extended_specifier);
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "2004-02-29 12:34:56.000789-05:00"
+ </pre>
+<p>Format strings are not limited to date/time elements. Extra verbiage can be placed in a format string. NOTE: When extra verbiage is present in an input format, the data being input must also contain the exact verbiage.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ // extra words in format
+ string my_format("The extended ordinal time %Y-%jT%H:%M can also be \
+ represented as %A %B %d, %Y");
+ output_facet-&gt;format(my_format.c_str());
+ input_facet-&gt;format(my_format.c_str());
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl;
+
+ // matching extra words in input
+ ss.str("The extended ordinal time 2005-128T12:15 can also be \
+ represented as Sunday May 08, 2005");
+ ss &gt;&gt; ldt;
+ cout &lt;&lt; ldt &lt;&lt; endl;
+ </pre>
+<a name="content_strings"></a><h4>
+<a name="id1032946"></a>Content Strings</h4>
+<p>So far we've shown how a user can achieve a great deal of customization with very little effort by using formats. Further customization can be achieved through user defined elements (ie strings). The elements that can be customized are: Special value names, month names, month abbreviations, weekday names, weekday abbreviations, delimiters of the date/time periods, and the phrase elements of the date_generators.</p>
+<p>The default values for these are as follows:</p>
+<h5>
+<a name="id1032960"></a>Special values</h5>
+<p><code class="computeroutput">not-a-date-time</code>,
+ <code class="computeroutput">-infinity</code>,
+ <code class="computeroutput">+infinity</code>,
+ <code class="computeroutput">minimum-date-time</code>,
+ <code class="computeroutput">maximum-date-time</code></p>
+<h5>
+<a name="id1032994"></a>Months</h5>
+<p><code class="computeroutput">English calendar and three letter abbreviations</code></p>
+<h5>
+<a name="id1033005"></a>Weekdays</h5>
+<p><code class="computeroutput">English calendar and three letter abbreviations</code></p>
+<h5>
+<a name="id1033016"></a>Date generator phrase elements</h5>
+<p><code class="computeroutput">first</code>,
+ <code class="computeroutput">second</code>,
+ <code class="computeroutput">third</code>,
+ <code class="computeroutput">fourth</code>,
+ <code class="computeroutput">fifth</code>,
+ <code class="computeroutput">last</code>,
+ <code class="computeroutput">before</code>,
+ <code class="computeroutput">after</code>,
+ <code class="computeroutput">of</code></p>
+<p>NOTE: We've shown earlier that the components of a date/time representation can be re-ordered via the format string. This is not the case with date_generators. The elements themselves can be customized but their order cannot be changed.</p>
+<h4>
+<a name="id1033079"></a>Content Strings</h4>
+<p>To illustrate the customization possibilities we will use custom strings for months and weekdays (we will only use long names, is all lowercase, for this example).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ // set up the collections of custom strings.
+ // only the full names are altered for the sake of brevity
+ string month_names[12] = { "january", "february", "march",
+ "april", "may", "june",
+ "july", "august", "september",
+ "october", "november", "december" };
+ vector&lt;string&gt; long_months(&amp;month_names[0], &amp;month_names[12]);
+ string day_names[7] = { "sunday", "monday", "tuesday", "wednesday",
+ "thursday", "friday", "saturday" };
+ vector&lt;string&gt; long_days(&amp;day_names[0], &amp;day_names[7]);
+
+ // create date_facet and date_input_facet using all defaults
+ date_facet* date_output = new date_facet();
+ date_input_facet* date_input = new date_input_facet();
+ ss.imbue(locale(ss.getloc(), date_output));
+ ss.imbue(locale(ss.getloc(), date_input));
+
+ // replace names in the output facet
+ date_output-&gt;long_month_names(long_months);
+ date_output-&gt;long_weekday_names(long_days);
+
+ // replace names in the input facet
+ date_input-&gt;long_month_names(long_months);
+ date_input-&gt;long_weekday_names(long_days);
+
+ // customize month, weekday and date formats
+ date_output-&gt;format("%Y-%B-%d");
+ date_input-&gt;format("%Y-%B-%d");
+ date_output-&gt;month_format("%B"); // full name
+ date_input-&gt;month_format("%B"); // full name
+ date_output-&gt;weekday_format("%A"); // full name
+ date_input-&gt;weekday_format("%A"); // full name
+
+ ss.str("");
+ ss &lt;&lt; greg_month(3);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "march"
+ ss.str("");
+ ss &lt;&lt; greg_weekday(3);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "tuesday"
+ ss.str("");
+ ss &lt;&lt; date(2005,Jul,4);
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "2005-july-04"
+ </pre>
+<a name="tut_sv"></a><h4>
+<a name="id1033099"></a>Special Values</h4>
+<p>Customizing the input and output of special values is best done by creating a new special_values_parser and special_values_formatter. The new strings can be set at construction time (as in the example below).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ // reset the formats to defaults
+ output_facet-&gt;format(local_time_facet::default_time_format);
+ input_facet-&gt;format(local_time_input_facet::default_time_input_format);
+
+ // create custom special_values parser and formatter objects
+ // and add them to the facets
+ string sv[5] = {"nadt","neg_inf", "pos_inf", "min_dt", "max_dt" };
+ vector&lt;string&gt; sv_names(&amp;sv[0], &amp;sv[5]);
+ special_values_parser sv_parser(sv_names.begin(), sv_names.end());
+ special_values_formatter sv_formatter(sv_names.begin(), sv_names.end());
+ output_facet-&gt;special_values_formatter(sv_formatter);
+ input_facet-&gt;special_values_parser(sv_parser);
+
+ ss.str("");
+ ldt = local_date_time(not_a_date_time);
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "nadt"
+
+ ss.str("min_dt");
+ ss &gt;&gt; ldt;
+ ss.str("");
+ ss &lt;&lt; ldt;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "1400-Jan-01 00:00:00 UTC"
+ </pre>
+<p>NOTE: even though we sent in strings for min and max to the formatter, they are ignored because those special values construct to actual dates (as shown above).</p>
+<a name="tut_dper"></a><h4>
+<a name="id1033116"></a>Date/Time Periods</h4>
+<p>Customizing the input and output of periods is best done by creating a new period_parser and period_formatter. The new strings can be set at construction time (as in the example below).</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ // all formats set back to defaults (not shown for brevity)
+
+ // create our date_period
+ date_period dp(date(2005,Mar,1), days(31)); // month of march
+
+ // custom period formatter and parser
+ period_formatter per_formatter(period_formatter::AS_OPEN_RANGE,
+ " to ", "from ", " exclusive", " inclusive" );
+ period_parser per_parser(period_parser::AS_OPEN_RANGE,
+ " to ", "from ", " exclusive" , "inclusive" );
+
+ // default output
+ ss.str("");
+ ss &lt;&lt; dp;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "[2005-Mar-01/2005-Mar-31]"
+
+ // add out custom parser and formatter to the facets
+ date_output-&gt;period_formatter(per_formatter);
+ date_input-&gt;period_parser(per_parser);
+
+ // custom output
+ ss.str("");
+ ss &lt;&lt; dp;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "from 2005-Feb-01 to 2005-Apr-01 exclusive"
+ </pre>
+<a name="tut_dgen"></a><h4>
+<a name="id1033146"></a>Date Generators</h4>
+<p>Customizing the input and output of date_generators is done by replacing the existing strings (in the facet) with new strings.</p>
+<p>NOTE: We've shown earlier that the components of a date/time representation can be re-ordered via the format string. This is not the case with date_generators. The elements themselves can be customized but their order cannot be changed.</p>
+ (continued from previous example)
+ <pre class="programlisting">
+ // custom date_generator phrases
+ string dg_phrases[9] = { "1st", "2nd", "3rd", "4th", "5th",
+ "final", "prior to", "following", "in" };
+ vector&lt;string&gt; phrases(&amp;dg_phrases[0], &amp;dg_phrases[9]);
+
+ // create our date_generator
+ first_day_of_the_week_before d_gen(Monday);
+
+ // default output
+ ss.str("");
+ ss &lt;&lt; d_gen;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Mon before"
+
+ // add our custom strings to the date facets
+ date_output-&gt;date_gen_phrase_strings(phrases);
+ date_input-&gt;date_gen_element_strings(phrases);
+
+ // custom output
+ ss.str("");
+ ss &lt;&lt; d_gen;
+ cout &lt;&lt; ss.str() &lt;&lt; endl; // "Mon prior to"
+ </pre>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="serialization.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/details.html b/doc/html/date_time/details.html
new file mode 100644
index 0000000000..3386e1e9fc
--- /dev/null
+++ b/doc/html/date_time/details.html
@@ -0,0 +1,1141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Details</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="serialization.html" title="Serialization">
+<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.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="serialization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="date_time.details"></a>Details</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="details.html#date_time.calculations">Calculations</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.design_goals">Design Goals</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.tradeoffs">Tradeoffs: Stability, Predictability, and Approximations</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.terminology">Terminology</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.references">References</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.buildinfo">Build-Compiler Information</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.tests">Tests</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.changes">Change History</a></span></dt>
+<dt><span class="section"><a href="details.html#date_time.acknowledgements">Acknowledgements</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.calculations"></a>Calculations</h4></div></div></div>
+<p><a href="details.html#timepoints">Timepoints</a> --
+ <a href="details.html#durations">Durations</a> --
+ <a href="details.html#intervals">Intervals (Periods)</a> --
+ <a href="details.html#special_value_handling">Special Value Handling</a></p>
+<a name="timepoints"></a><h3>
+<a name="id1033431"></a>Timepoints</h3>
+<p>
+ This section describes some of basic arithmetic rules that can be performed with timepoints. In general, Timepoints support basic arithmetic in conjunction with Durations as follows:
+ </p>
+<pre class="programlisting">
+ Timepoint + Duration --&gt; Timepoint
+ Timepoint - Duration --&gt; Timepoint
+ Timepoint - Timepoint --&gt; Duration
+ </pre>
+<p>
+ Unlike regular numeric types, the following operations are undefined:
+ </p>
+<pre class="programlisting">
+ Duration + Timepoint --&gt; Undefined
+ Duration - Timepoint --&gt; Undefined
+ Timepoint + Timepoint --&gt; Undefined
+ </pre>
+<a name="durations"></a><h3>
+<a name="id1033457"></a>Durations</h3>
+<p>
+ Durations represent a length of time and can have positive and negative values. It is frequently useful to be able to perform calculations with other durations and with simple integral values. The following describes these calculations:
+ </p>
+<pre class="programlisting">
+ Duration + Duration --&gt; Duration
+ Duration - Duration --&gt; Duration
+
+ Duration * Integer --&gt; Duration
+ Integer * Duration --&gt; Duration
+ Duration / Integer --&gt; Duration (Integer Division rules)
+ </pre>
+<a name="intervals"></a><h3>
+<a name="id1033481"></a>Intervals (Periods)</h3>
+<p>
+ Interval logic is extremely useful for simplifying many 'calculations' for dates and times. The following describes the operations provided by periods which are based on half-open range. The following operations calculate new time periods based on two input time periods:
+ </p>
+<pre class="programlisting">
+Timeperiod intersection Timeperiod --&gt; Timeperiod
+ (null interval if no intersection)
+Timeperiod merge Timeperiod --&gt; Timeperiod
+ (null interval if no intersection)
+Timeperiod shift Duration --&gt; Timeperiod
+ (shift start and end by duration amount)
+ </pre>
+<p>
+ In addition, periods support various queries that calculate boolean results. The first set is caluculations with other time periods:
+ </p>
+<pre class="programlisting">
+ Timeperiod == Timeperiod --&gt; bool
+ Timeperiod &lt; Timeperiod --&gt; bool (true if lhs.last &lt;= rhs.begin)
+ Timeperiod intersects Timeperiod --&gt; bool
+ Timeperiod contains Timeperiod --&gt; bool
+ Timeperiod is_adjacent Timeperiod --&gt; bool
+ </pre>
+<p>
+ The following calculations are performed versus the Timepoint.
+ </p>
+<pre class="programlisting">
+ Timeperiod contains Timepoint --&gt; bool
+ Timeperiod is_before Timepoint --&gt; bool
+ Timeperiod is_after Timepoint --&gt; bool
+ </pre>
+<a name="special_value_handling"></a><h3>
+<a name="id1033533"></a>Special Value Handling</h3>
+<p>
+ For many temporal problems it is useful for Duration and Timepoint types to support special values such as Not A Date Time (NADT) and infinity. In general special values such as Not A Date Time (NADT) and infinity should follow rules like floating point values. Note that it should be possible to configure NADT based systems to throw an exception instead of result in NADT.
+ </p>
+<pre class="programlisting">
+ Timepoint(NADT) + Duration --&gt; Timepoint(NADT)
+ Timepoint(&#8734;) + Duration --&gt; Timepoint(&#8734;)
+ Timepoint + Duration(&#8734;) --&gt; Timepoint(&#8734;)
+ Timepoint - Duration(&#8734;) --&gt; Timepoint(-&#8734;)
+ </pre>
+<p>
+ When performing operations on both positive and negative infinities, the library will produce results consistent with the following.
+ </p>
+<pre class="programlisting">
+ Timepoint(+&#8734;) + Duration(-&#8734;) --&gt; NADT
+ Duration(+&#8734;) + Duration(-&#8734;) --&gt; NADT
+ Duration(±&#8734;) * Zero --&gt; NADT
+
+ Duration(&#8734;) * Integer(Not Zero) --&gt; Duration(&#8734;)
+ Duration(+&#8734;) * -Integer --&gt; Duration(-&#8734;)
+ Duration(&#8734;) / Integer --&gt; Duration(&#8734;)
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.design_goals"></a>Design Goals</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Category</th>
+<th>Description</th>
+</tr>
+<tr><th>Functions</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top">Interfaces</td>
+<td>Provide concrete classes for manipulation of dates and times</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">date, time, date_duration, time_duration, date_period, time_period, etc</li>
+<li style="list-style-type: disc">support for infinity - positive infinity, negative infinity</li>
+<li style="list-style-type: disc">iterators over time and date ranges</li>
+<li style="list-style-type: disc">allow date and time implementations to be separate as much as possible</li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">Calculation</td>
+<td>Provide a basis for performing efficient time calculations </td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">days between dates </li>
+<li style="list-style-type: disc">durations of times </li>
+<li style="list-style-type: disc">durations of dates and times together </li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">Representation Flexibility</td>
+<td>Provide the maximum possible reusability and flexibility</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">traits based customization of internal representations for size versus resolution control</li>
+<li style="list-style-type: disc">Allowing the use of different epochs and resolution (eg: seconds versus microseconds, dates starting at the year 2000 versus dates starting in 1700)</li>
+<li style="list-style-type: disc">Options for configuring unique calendar representations (Gregorian + others)</li>
+<li style="list-style-type: disc">the use of Julian Day number and the conversion between this and the Gregorian/Julian calendar date</li>
+<li style="list-style-type: disc">Allow for flexible adjustments including leap seconds</li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">Date Calculations</td>
+<td>Provide tools for date calculations</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">provide basis for calculation of complex event specs like holidays</li>
+<li style="list-style-type: disc">calendar to calendar conversions</li>
+<li style="list-style-type: disc">provide for ability to extend to new calendar systems</li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">Time Calculations</td>
+<td>Provide concrete classes for manipulation of time</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">provide the ability to handle cross time-zone issues</li>
+<li style="list-style-type: disc">provide adjustments for daylight savings time (summer time)</li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">Clock Interfaces</td>
+<td>Provide classes for retrieving time current time</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">access to a network / high resolution time sources </li>
+<li style="list-style-type: disc">retrieving the current date time information to populate classes </li>
+</ul></div></td></tr>
+<tr>
+<td rowspan="2" valign="top">I/O Interfaces</td>
+<td>Provide input and output for time including</td>
+</tr>
+<tr><td><div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">multi-lingual support </li>
+<li style="list-style-type: disc">provide ISO8601 compliant time facet </li>
+<li style="list-style-type: disc">use I/O facets for different local behavior </li>
+</ul></div></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.tradeoffs"></a>Tradeoffs: Stability, Predictability, and Approximations</h4></div></div></div>
+<h2>
+<a name="id1033804"></a>
+ Unavoidable Trade-offs
+ </h2>
+<p>
+ The library does its best to provide everything a user could want, but there are certain inherent constraints that limit what <span class="emphasis"><em>any</em></span> temporal library can do. Specifically, a user must choose which two of the following three capabilities are desired in any particular application:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">exact agreement with wall-clock time</li>
+<li style="list-style-type: disc">accurate math, e.g. duration calculations</li>
+<li style="list-style-type: disc">ability to handle timepoints in the future</li>
+</ul></div>
+<p>
+ Some libraries may implicitly promise to deliver all three, but if you actually put them to the test, only two can be true at once. This limitation is not a deficiency in the design or implementation of any particular library; rather it is a consequence of the way different time systems are defined by international standards. Let's look at each of the three cases:
+ </p>
+<p>
+ If you want exact agreement with wall-clock time, you must use either UTC or local time. If you compute a duration by subtracting one UTC time from another and you want an answer accurate to the second, the two times must not be too far in the future because leap seconds affect the count but are only determined about 6 months in advance. With local times a future duration calculation could be off by an entire hour, since legislatures can and do change DST rules at will.
+ </p>
+<p>
+ If you want to handle wall-clock times in the future, you won't be able (in the general case) to calculate exact durations, for the same reasons described above.
+ </p>
+<p>
+ If you want accurate calculations with future times, you will have to use TAI or an equivalent, but the mapping from TAI to UTC or local time depends on leap seconds, so you will not have exact agreement with wall-clock time.
+ </p>
+<h2>
+<a name="id1033860"></a>
+ Stability, Predictability, and Approximations
+ </h2>
+<p>
+ Here is some underlying theory that helps to explain what's going on. Remember that a temporal type, like any abstract data type (ADT), is a set of values together with operations on those values.
+ </p>
+<h3>
+<a name="id1033870"></a>
+ Stability
+ </h3>
+<p>
+ The representation of a type is <span class="emphasis"><em>stable</em></span> if the bit pattern associated with a given value does not change over time. A type with an unstable representation is unlikely to be of much use to anyone, so we will insist that any temporal library use only stable representations.
+ </p>
+<p>
+ An operation on a type is stable if the result of applying the operation to a particular operand(s) does not change over time.
+ </p>
+<h3>
+<a name="id1033890"></a>
+ Predictability
+ </h3>
+<p>
+ Sets are most often classified into two categories: well-defined and ill-defined. Since a type is a set, we can extend these definitions to cover types. For any type T, there must be a predicate <span class="emphasis"><em>is_member( x )</em></span> which determines whether a value x is a member of type T. This predicate must return <span class="emphasis"><em>true, false,</em></span> or <span class="emphasis"><em>dont_know</em></span>.
+ </p>
+<p>
+ If for all x, is_member( x ) returns either true or false, we say the set T is <span class="emphasis"><em>well-defined</em></span>.
+ </p>
+<p>
+ If for any x, is_member( x ) returns dont_know, we say the set T is <span class="emphasis"><em>ill-defined</em></span>.
+ </p>
+<p>
+ Those are the rules normally used in math. However, because of the special characteristics of temporal types, it is useful to refine this view and create a third category as follows:
+ </p>
+<p>
+ For any temporal type T, there must be a predicate <span class="emphasis"><em>is_member( x, t )</em></span> which determines whether a value x is a member of T. The parameter t represents the time when the predicate is evaluated. For each x<sub>i</sub>, there must be a time t<sub>i</sub> and a value v such that:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">v = true or v = false, and</li>
+<li style="list-style-type: disc">for all t &lt; t<sub>i</sub>, is_member( x<sub>i</sub>, t ) returns dont_know, and</li>
+<li style="list-style-type: disc">for all t &gt;= t<sub>i</sub>, is_member( x<sub>i</sub>, t ) returns v.</li>
+</ul></div>
+<p>
+ t<sub>i</sub> is thus the time when we "find out" whether x<sub>i</sub> is a member of T. Now we can define three categories of temporal types:
+ </p>
+<p>
+ If for all x<sub>i</sub>, t<sub>i</sub> = negative infinity, we say the type T is <span class="emphasis"><em>predictable</em></span>.
+ </p>
+<p>
+ If for some x<sub>i</sub>, t<sub>i</sub> = positive infinity, we say the type T is <span class="emphasis"><em>ill-formed</em></span>.
+ </p>
+<p>
+ Otherwise we say the type T is <span class="emphasis"><em>unpredictable</em></span> (this implies that for some x<sub>i</sub>, t<sub>i</sub> is finite).
+ </p>
+<p>
+ Ill-formed sets are not of much practical use, so we will not discuss them further. In plain english the above simply says that all the values of a predictable type are known ahead of time, but some values of an unpredictable type are not known until some particular time.
+ </p>
+<h3>
+<a name="id1034033"></a>
+ Stability of Operations
+ </h3>
+<p>
+ Predictable types have a couple of important properties:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">there is an order-preserving mapping from their elements onto a set of consecutive integers, and</li>
+<li style="list-style-type: disc">duration operations on their values are stable</li>
+</ul></div>
+<p>
+ The practical effect of this is that duration calculations can be implemented with simple integer subtraction. Examples of predictable types are TAI timepoints and Gregorian dates.
+ </p>
+<p>
+ Unpredictable types have exactly the opposite properties:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">there is no order-preserving mapping from their elements onto a set of consecutive integers, and</li>
+<li style="list-style-type: disc">duration operations on their values are not stable. </li>
+</ul></div>
+<p>
+ Examples of unpredictable types are UTC timepoints and Local Time timepoints.
+ </p>
+<p>
+ We can refine this a little by saying that a range within an unpredicatable type can be predictable, and operations performed entirely on values within that range will be stable. For example, the range of UTC timepoints from 1970-01-01 through the present is predictable, so calculations of durations within that range will be stable.
+ </p>
+<h3>
+<a name="id1034083"></a>
+ Approximations
+ </h3>
+<p>
+ These limitations are problematical, because important temporal types like UTC and Local Time are in fact unpredictable, and therefore operations on them are sometimes unstable. Yet as a practical matter we often want to perform this kind of operation, such as computing the duration between two timepoints in the future that are specified in Local Time.
+ </p>
+<p>
+ The best the library can do is to provide an approximation, which is generally possible and for most purposes will be good enough. Of course the documentation must specify when an answer will be approximate (and thus unstable) and how big the error may be. In many respects calculating with unpredictable sets is analogous to the use of floating point numbers, for which results are expected to only be approximately correct. Calculating with predictable sets would then be analogous to the user of integers, where results are expected to be exact.
+ </p>
+<p>
+ For situations where exact answers are required or instability cannot be tolerated, the user must be able to specify this, and then the library should throw an exception if the user requests a computation for which an exact, stable answer is not possible.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.terminology"></a>Terminology</h4></div></div></div>
+<p>
+ The following are a number of terms relevant to the date-time domain.
+ </p>
+<p>
+ A taxonomy of temporal types:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Timepoint -- Specifier for a location in the time continuum. Similar to a number on a ruler.</li>
+<li style="list-style-type: disc">Timelength -- A duration of time unattached to any point on the time continuum.</li>
+<li style="list-style-type: disc">Timeinterval -- A duration of time attached to a specific point in the time continuum.</li>
+</ul></div>
+<p>
+ And some other terms:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Accuracy -- A measure of error, the difference between the reading of a clock and the true time.</li>
+<li style="list-style-type: disc">Calendar System -- A system for labeling time points with day level resolution.</li>
+<li style="list-style-type: disc">Clock Device -- A software component (tied to some hardware) that provides the current date or time with respect to a calendar or clock system.</li>
+<li style="list-style-type: disc">Precision -- A measure of repeatability of a clock.</li>
+<li style="list-style-type: disc">Resolution -- A specification of the smallest representable duration (eg: 1 second, 1 century) for a clock/calendar system or temporal type.</li>
+<li style="list-style-type: disc">Stability -- The property of a class which says that the underlying representation (implementation) associated with a particular (abstract) value will never change.</li>
+<li style="list-style-type: disc">Time System -- A system for labeling time points with higher resolution than day-level. </li>
+</ul></div>
+<p>
+ Some standard date-time terminology:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Epoch -- Starting time point of a calendar or clock system.</li>
+<li style="list-style-type: disc">DST -- Daylight savings time - a local time adjustment made in some regions during the summer to shift the clock time of the daylight hours</li>
+<li style="list-style-type: disc">Time zone -- A region of the earth that provides for a 'local time' defined by DST rules and UT offset.</li>
+<li style="list-style-type: disc">UTC Time -- Coordinated Universal Time - Civil time system as measured at longitude zero. Kept adjusted to earth rotation by use of leap seconds. Also known as Zulu Time. Replaced the similar system known as Greenwich Mean Time. For more see <a href="http://aa.usno.navy.mil/faq/docs/UT.html" target="_top">http://aa.usno.navy.mil/faq/docs/UT.html</a>
+</li>
+<li style="list-style-type: disc">TAI Time -- A high-accuracy monotonic (need better term) time system measured to .1 microsecond resolution by atomic clocks around the world. Not adjusted to earth rotation. For more see <a href="http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html" target="_top">http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html</a>
+</li>
+</ul></div>
+<p>
+ Some more experimental ones:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Local Time -- A time measured in a specific location of the universe.</li>
+<li style="list-style-type: disc">Time Label -- A tuple that either completely or partially specifies a specific date-time with respect to a calendar or clock system. This is the year-month-day representation.</li>
+<li style="list-style-type: disc">Adjusting Time Length -- A duration that represents varying physical durations depending on the moment in time. For example, a 1 month duration is typically not a fixed number of days and it depends on the date it is measured from to determine the actual length. </li>
+</ul></div>
+<p>
+ These are design sorts of terms:
+ </p>
+<div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc">Generation function -- A function that generates a specific set of time points, lengths, or intervals based on one or more parameters. </li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.references"></a>References</h4></div></div></div>
+<p>The design of the library is currently being evolved using Wiki and email discussions. You can find more information at: <a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?GDTL" target="_top">Boost Wiki GDTL Start Page</a>.
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc"><a href="details.html#date_ref">Date References</a></li>
+<li style="list-style-type: disc"><a href="details.html#time_ref">Time References</a></li>
+<li style="list-style-type: disc"><a href="details.html#other_c_libs">Other C/C++ Libraries</a></li>
+<li style="list-style-type: disc"><a href="details.html#java_libs">JAVA Date-Time Libraries</a></li>
+<li style="list-style-type: disc"><a href="details.html#script_libs">Scripting Language Libraries</a></li>
+<li style="list-style-type: disc"><a href="details.html#related">Related Commercial and Fanciful Pages</a></li>
+<li style="list-style-type: disc"><a href="details.html#resolution">Resolution, Precision, and Accuracy</a></li>
+</ul></div>
+<a name="date_ref"></a><h3>
+<a name="id1034328"></a>Date Calendar References</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">ISO 8601 date time standard -- <a href="http://www.cl.cam.ac.uk/~mgk25/iso-time.html" target="_top">Summary by Markus Kuhn</a>
+</li>
+<li style="list-style-type: disc">
+<a href="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition/" target="_top">Calendrical Calculations</a> book by Reingold &amp; Dershowitz</li>
+<li style="list-style-type: disc"><a href="http://www.tondering.dk/claus/calendar.html" target="_top">Calendar FAQ by Claus Tøndering</a></li>
+<li style="list-style-type: disc">Calendar zone <a href="http://www.calendarzone.com" target="_top">http://www.calendarzone.com</a>
+</li>
+<li style="list-style-type: disc"><a href="http://www.w3.org/TR/xmlschema-2/#dateTime" target="_top">XML schema for date time</a></li>
+<li style="list-style-type: disc">Will Linden's <a href="http://www.ecben.net/calendar.shtml" target="_top">Calendar Links</a>
+</li>
+<li style="list-style-type: disc"><a href="http://www21.brinkster.com/lonwolve/melt/index.htm" target="_top">XMAS calendar melt</a></li>
+</ul></div>
+<a name="time_ref"></a><h3>
+<a name="id1034392"></a>Time</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Martin Folwer on time patterns
+ <div class="itemizedlist"><ul type="opencircle">
+<li><a href="http://www.aw.com/cseng/titles/0-201-89542-0/apsupp/events2-1.html" target="_top">Recurring Events for Calendars</a></li>
+<li>Patterns for things that <a href="http://martinfowler.com/ap2/timeNarrative.html" target="_top">Change with time</a>
+</li>
+</ul></div>
+</li>
+<li style="list-style-type: disc">US National Institute of Standards and Technology <a href="http://nist.time.gov/exhibits.html" target="_top">Time Exhibits</a>
+</li>
+<li style="list-style-type: disc">Network Time Protocol at <a href="http://www.ntp.org/" target="_top">NTP.org</a>
+</li>
+<li style="list-style-type: disc">US Navy <a href="http://tycho.usno.navy.mil/systime.html" target="_top">Systems of Time</a>
+</li>
+<li style="list-style-type: disc"><a href="http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html" target="_top">International Atomic Time</a></li>
+<li style="list-style-type: disc">
+<a href="http://beta.zyprexia.com/docs/pgsql/user/datatype1130.htm" target="_top">Date-Time type PostgreSQL</a> User Guide </li>
+</ul></div>
+<a name="other_c_libs"></a><h3>
+<a name="id1034465"></a>Other C/C++ Libraries</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">
+<a href="http://www.cplusplus.com/ref/ctime/index.html" target="_top">ctime C</a> Standard library reference at cplusplus.com</li>
+<li style="list-style-type: disc">
+<a href="http://www.cl.cam.ac.uk/~mgk25/c-time/" target="_top">XTime C extension</a> proposal</li>
+<li style="list-style-type: disc">
+<a href="http://david.tribble.com/text/c0xcalendar.html#author-info" target="_top">Another C library extension proposal</a> by David Tribble</li>
+<li style="list-style-type: disc">
+<a href="http://cr.yp.to/libtai.html" target="_top">libTAI</a> is a C based time library</li>
+<li style="list-style-type: disc">
+<a href="http://www.twinsun.com/tz/tz-link.htm" target="_top">Time Zone Database</a> C library for managing timezones/places</li>
+<li style="list-style-type: disc">International Components for Unicode by IBM (open source)
+ <div class="itemizedlist"><ul type="opencircle">
+<li><a href="http://icu.sourceforge.net/userguide/dateCalendar.html" target="_top">Calendar Class</a></li>
+<li><a href="http://icu.sourceforge.net/userguide/dateTime.html" target="_top">Date Time Services</a></li>
+<li><a href="http://oss.software.ibm.com/userguide/dateTimezone.html" target="_top">Time Zone Class</a></li>
+<li><a href="http://oss.software.ibm.com/userguide/formatDateTime.html" target="_top">Date-Time Formatting</a></li>
+</ul></div>
+</li>
+<li style="list-style-type: disc"><a href="http://pds-rings.seti.org/toolkits/julian_133_html/aareadme.html" target="_top">Julian Library in C by Mark Showalter -- NASA</a></li>
+</ul></div>
+<a name="java_libs"></a><h3>
+<a name="id1034558"></a>JAVA Date &amp; Time Library Quick Reference</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html" target="_top">Calendar class</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html" target="_top">Gregorian calendar</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html" target="_top">Date class</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Time.html" target="_top">sql.time class</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormatSymbols.html#_top_" target="_top">Date format symbols</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/DateFormat.html" target="_top">Date format</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleDateFormat.html" target="_top">Simple Date Format</a></li>
+<li style="list-style-type: disc"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/SimpleTimeZone.html" target="_top">Simple Time Zone</a></li>
+</ul></div>
+<a name="script_libs"></a><h3>
+<a name="id1034626"></a>Scripting Language Libraries</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">A python date library <a href="http://www.lemburg.com/files/python/mxDateTime.html" target="_top">MX Date Time</a>
+</li>
+<li style="list-style-type: disc">Perl date-time
+ <div class="itemizedlist"><ul type="opencircle">
+<li><a href="http://search-dev.develooper.com/search?m=module&amp;q=date&amp;s=11" target="_top">Date-Time packages at CPAN</a></li>
+<li>
+<a href="http://search-dev.develooper.com/~stbey/Date-Calc-5.4/Calc.pod" target="_top">Date::Calc</a> at CPAN</li>
+<li>
+<a href="http://search.cpan.org/doc/MORTY/DateConvert-0.16/Convert.pm" target="_top">Date::Convert</a> calendar conversions at CPAN</li>
+</ul></div>
+</li>
+</ul></div>
+<a name="related"></a><h3>
+<a name="id1034650"></a>Related Commercial and Fanciful Pages</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">
+<a href="http://www.craphound.com/est/" target="_top">Eastern Standard Tribe</a> -- Cory Doctorow science fiction novel with time themes.</li>
+<li style="list-style-type: disc">
+<a href="http://www.leapsecond.com/java/gpsclock.htm" target="_top">Leapsecond.com time</a> page</li>
+<li style="list-style-type: disc"><a href="http://www.worldtimeserver.com" target="_top">World Time Server / TZ database</a></li>
+<li style="list-style-type: disc">
+<a href="http://www.longnow.org/10kclock/clock.htm" target="_top">10000 year clock</a> at Long Now Foundation</li>
+<li style="list-style-type: disc"><a href="http://www.timezonesforpcs.com" target="_top">Timezones for PCs</a></li>
+</ul></div>
+<a name="resolution"></a><h3>
+<a name="id1034727"></a>Resolution, Precision, and Accuracy</h3>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">Definitions with pictures from <a href="http://metrologyforum.tm.agilent.com/specs.shtml" target="_top">Agilent Technologies</a>
+</li>
+<li style="list-style-type: disc">Definitions from <a href="http://www.solent.ac.uk/hydrography/notes/errorthe/accuracy.htm" target="_top">Southampton Institute</a>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.buildinfo"></a>Build-Compiler Information</h4></div></div></div>
+<p><a href="details.html#overview">Overview</a> --
+ <a href="details.html#compile_options">Compilation Options</a> --
+ <a href="details.html#portability">Compiler/Portability Notes</a> --
+ <a href="details.html#dir_structure">Directory Structure</a> --
+ <a href="details.html#other_boost_libs">Required Boost Libraries</a></p>
+<a name="overview"></a><h3>
+<a name="id1034809"></a>Overview</h3>
+<p>
+ The library has several functions that require the creation of a library file. The Jamfile in the build directory will produce a "static" library (libboost_date_time) and a "dynamic/shared" library (boost_date_time) that contains these functions.
+ </p>
+<a name="compile_options"></a><h3>
+<a name="id1034825"></a>Compilation Options</h3>
+<p>
+ By default the posix_time system uses a single 64 bit integer internally to provide a microsecond level resolution. As an alternative, a combination of a 64 bit integer and a 32 bit integer (96 bit resolution) can be used to provide nano-second level resolutions. The default implementation may provide better performance and more compact memory usage for many applications that do not require nano-second resolutions.
+ </p>
+<p>
+ To use the alternate resolution (96 bit nanosecond) the variable <code class="computeroutput">BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG</code> must be defined in the library users project files (ie Makefile, Jamfile, etc). This macro is not used by the Gregorian system and therefore has no effect when building the library.
+ </p>
+<p>As of version 1.33, the date_time library introduced a new IO streaming system. Some compilers are not capable of utilizing this new system. For those compilers the earlier ("legacy") IO system is still available. Non-supported compilers will select the legacy system automatically but the user can force the usage of the legacy system by defining <code class="computeroutput">USE_DATE_TIME_PRE_1_33_FACET_IO</code>.</p>
+<p>As a convenience, <code class="computeroutput">date_time</code> has provided some <a href="gregorian.html#additional_duration_types">additional duration types</a>. Use of these types may have unexpected results due to the snap-to-end-of-month behavior (see <a href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a> for complete details and examples). These types are enabled by default. To disable these types, simply undefine <code class="computeroutput">BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES</code> in your project file.</p>
+<p>Another convenience is the default constructors for <code class="computeroutput"><a href="gregorian.html#date_time.gregorian.date_class" title="Date">date</a></code>, and <code class="computeroutput"><a href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">ptime</a></code>. These constructors are enabled by default. To disable them, simply define <code class="computeroutput">DATE_TIME_NO_DEFAULT_CONSTRUCTOR</code> in your project file.</p>
+<a name="portability"></a><h3>
+<a name="id1034937"></a>Compiler/Portability Notes</h3>
+<p>
+ The Boost Date-Time library has been built and tested with many compilers. However, some compilers and standard libraries have issues. While some of these issues can be worked around, others are difficult to work around. The following compilers fully support all aspects of the library:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">GCC 3.2 - 3.4, 4.0 on Linux</li>
+<li style="list-style-type: disc">GCC 3.3 on Darwin</li>
+<li style="list-style-type: disc">GCC 3.3 on Solaris</li>
+<li style="list-style-type: disc">GCC 3.2 (cygwin) *</li>
+<li style="list-style-type: disc">MinGW 3.2 *</li>
+<li style="list-style-type: disc">MSVC 7.1 </li>
+<li style="list-style-type: disc">Intel 8.1 Linux and Windows</li>
+</ul></div>
+<p>
+ * These compilers do not support the <code class="computeroutput">wstring/wstream</code> aspects of the <code class="computeroutput">date_time</code> library.
+ </p>
+<p>
+ In particular, a lack of support for standard locales limits the ability of the library to support iostream based input output. For these compilers a set of more limited string based input-output is provided. Some compilers/standard libraries with this limitation include:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc">GCC 2.9x on Linux</li>
+<li style="list-style-type: disc">Borland 5.1.1 and 5.6</li>
+<li style="list-style-type: disc">MSVC 7.0</li>
+<li style="list-style-type: disc">MSVC 6 SP5 </li>
+</ul></div>
+<p>
+ Metrowerks Code Warrior 9.4 has some input I/O limitations, but is otherwise
+ fully supported.
+ </p>
+<h5>
+<a name="id1035008"></a>Visual Studio &amp; STLPort</h5>
+<p>There is a known issue with Visual Studio (7.0 &amp; 7.1) and STLPort. The build errors typically make reference to a type issue or 'no acceptable conversion' and are attempting to instantiate a template with <code class="computeroutput">wchar_t</code>. The default build of STLPort does not support <code class="computeroutput">wchar_t</code>. There are two possible workarounds for this issue. The simplest is the user can build date_time with no wide stream/string etc. The other is to rebuild STLPort with wchar_t support.
+ </p>
+<p>To build date_time with no wide stream/string etc, execute the following command from <code class="computeroutput">$BOOST_ROOT</code>:
+ </p>
+<pre class="screen">bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&lt;define&gt;BOOST_NO_STD_WSTRING" \
+ --stagedir=... --with-date_time stage</pre>
+<p>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code class="computeroutput">TOOLS</code> to the proper toolset if necessary)
+ </p>
+<p>Rebuilding STLPort with <code class="computeroutput">wchar_t</code> support involves placing <code class="computeroutput">/Zc:wchar_t</code> in the STLPort makefile. Date_time should then be built with the following command from <code class="computeroutput">$BOOST_ROOT</code>:
+ </p>
+<pre class="screen">bjam -a "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=..." \
+ "-sBUILD=&amp;native-wchar_t&gt;on" \
+ --stagedir=... --with-date_time stage</pre>
+<p>
+ (replace the ellipsis with the correct paths for the build system and adjust the <code class="computeroutput">TOOLS</code> to the proper toolset if necessary)
+ </p>
+<a name="dir_structure"></a><h3>
+<a name="id1035047"></a>Directory Structure</h3>
+<p>
+ The directory tree has the following structure:
+ </p>
+<pre class="programlisting">/boost/date_time -- common headers and template code
+/boost/date_time/gregorian -- Gregorian date system header files
+/boost/date_time/posix_time -- Posix time system headers
+/boost/date_time/local_time -- Local time system headers
+/libs/date_time/build -- build files and output directory
+/libs/date_time/test -- test battery for generic code
+/libs/date_time/test/gregorian -- test battery for the Gregorian system
+/libs/date_time/test/posix_time -- test battery for the posix_time system
+/libs/date_time/test/local_time -- test battery for the local_time system
+/libs/date_time/examples/gregorian -- example programs for dates
+/libs/date_time/examples/posix_time -- time example programs
+/libs/date_time/examples/local_time -- nifty example programs
+/libs/date_time/src/gregorian -- cpp files for libboost_date_time
+/libs/date_time/src/posix_time -- empty (one file, but no source code...)</pre>
+<a name="other_boost_libs"></a><h3>
+<a name="id1035126"></a>Required Boost Libraries</h3>
+<p>
+ Various parts of date-time depend on other boost libraries. These include:
+ </p>
+<div class="itemizedlist"><ul type="bullet">
+<li style="list-style-type: disc"><a href="../../../libs/tokenizer/index.html" target="_top">boost.tokenizer</a></li>
+<li style="list-style-type: disc"><a href="../../../libs/integer/cstdint.htm" target="_top">boost.integer(cstdint)</a></li>
+<li style="list-style-type: disc"><a href="../../../libs/utility/operators.htm" target="_top">boost.operators</a></li>
+<li style="list-style-type: disc"><a href="../../../libs/conversion/lexical_cast.htm" target="_top">boost::lexical_cast </a></li>
+<li style="list-style-type: disc"><a href="../../../libs/smart_ptr/smart_ptr.htm" target="_top">boost::smart_ptr </a></li>
+<li style="list-style-type: disc"><a href="../../../libs/algorithm/string/" target="_top">boost::string_algorithms </a></li>
+</ul></div>
+<p>
+ so at least these libraries need to be installed.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.tests"></a>Tests</h4></div></div></div>
+<p>
+ The library provides a large number of tests in the
+ </p>
+<pre class="programlisting">
+ libs/date_time/test
+ libs/date_time/test/gregorian
+ libs/date_time/test/posix_time
+ libs/date_time/test/local_time
+ </pre>
+<p>
+ directories. Building and executing these tests assures that the installation is correct and that the library is functioning correctly. In addition, these tests facilitate the porting to new compilers. Finally, the tests provide examples of many functions not explicitly described in the usage examples.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.changes"></a>Change History</h4></div></div></div>
+<h3>
+<a name="id1035213"></a>Changes from Boost 1.32 to 1.33 (date_time 1.03 to 1.04)</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Period lengths, when beginning and end points are the same, or are consecutive, were being incorrectly calculated. The corrected behavior, where end and beginning points are equal, or a period is created with a zero duration, now return a length of zero. A period where beginning and end points are consecutive will return a length of one.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time_input_facet was missing functions to set iso formats. It also failed to parse time values that did not use a separator (%H%M%S). Both these bugs have been corrected.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Preliminary names of ptime_facet and ptime_input_facet changed to simply time_facet and time_input_facet. The ptime_* versions have been removed all together.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>The from_iso_string function failed to parse fractional digits. We added code that correctly parses when input has more digits, or too few digits, that the compiled library precision. Ptimes with only a decimal are also correctly parsed.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>The parsing mechanism in the new IO would consume the next character after a match was made. This bug presented itself when attempting to parse a period that had special value for it's beginning point.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>The new IO system failed to provide the ability for the user to "turn on" exceptions on the stream. The failbit was also not set when parsing failed. Both of these problems have been fixed.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Parsing of special values, by means of from_*_string functions, has been fixed. This also effects the libraries ability to serialize special values. Time_duration now serializes as either a string or individual fields (depending on is_special()).
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Previously, output streaming of <code class="computeroutput">partial_date</code> would display the day as either a single or double digit integer (ie '1', or '12'). This has been corrected to always display a double digit integer (ie '01').
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Major new features related to management of local times.
+ This includes the introduction of a series of new classes to
+ represent time zones and local times (see <a href="local_time.html" title="Local Time">Date Time Local Time</a> for complete details).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Input and output facets have been re-written to support format-based
+ redefinition of formats (see <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a> for complete details).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions have been added to facilitate conversions between <code class="computeroutput">tm</code> structs for <code class="computeroutput">date</code>, <code class="computeroutput">ptime</code>, <code class="computeroutput">time_duration</code>, and <code class="computeroutput">local_date_time</code>. Functions for converting <code class="computeroutput">FILETIME</code>, and <code class="computeroutput">time_t</code> to <code class="computeroutput">ptime</code> are also provided. See the individual sections for details.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>A <code class="computeroutput">universal_time</code> function has been added to the <code class="computeroutput">microsec_time_clock</code> (full details of this function can be found <a href="posix_time.html#ptime_from_clock">here</a>).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions have been added to facilitate conversions between <code class="computeroutput">tm</code> structs for <code class="computeroutput">date</code>, <code class="computeroutput">ptime</code>, <code class="computeroutput">time_duration</code>, and <code class="computeroutput">local_date_time</code>. Functions for converting <code class="computeroutput">FILETIME</code>, and <code class="computeroutput">time_t</code> to <code class="computeroutput">ptime</code> are also provided. See the individual sections for details.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>A <code class="computeroutput">universal_time</code> function has been added to the <code class="computeroutput">microsec_time_clock</code> (full details of this function can be found <a href="posix_time.html#ptime_from_clock">here</a>).
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Date-time now uses reentrant POSIX functions on those platforms that
+ support them when BOOST_HAS_THREADS is defined.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed a bug in serialization code where special values
+ (not-a-date-time, infinities, etc) for
+ ptime, time_duration would not read back correctly from an archive.
+ The output serialization code wrote subfields such
+ as time_duration.seconds() which are invalid for special values and
+ thus undefined values. Thus when read back the values could cause
+ strange behavior including execeptions on construction.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed multiple warnings generated with various platforms/compilers.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Construction of a ptime with a time_duration beyond the range of 00:00 to 23:59:59.9... now adjusts the date and time to make the time_duration fall within this range (ie <code class="computeroutput">ptime(date(2005,2,1), hours(-5))</code> -&gt; "2005-Jan-31 19:00:00" &amp; <code class="computeroutput">ptime(date(2005,2,1), hours(35))</code> -&gt; "2005-Feb-02 11:00:00").
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time parsing now correctly handles excessive digits for fractional seconds. Leading zeros are dropped ("000100" -&gt; 100 frac_sec), and excessive digits are truncated at the proper place ("123456789876" -&gt; 123456 or 123456789 depending on what precision the library was compiled with).
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Changes to the <code class="computeroutput">boost::serialization</code> interface broke serialization compatibility for <code class="computeroutput">date_time</code>. The user must provide a function to insure <code class="computeroutput">date_time</code> objects are <code class="computeroutput">const</code> before they are serialized. The function should be similar to:
+ <pre class="screen">template&lt;class archive_type, class temporal_type&gt;
+void save_to(archive_type&amp; ar,
+ const temporal_type&amp; tt)
+{
+ ar &lt;&lt; tt;
+}</pre>
+</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Use of the depricated <code class="computeroutput">boost::tokenizer</code> interface has been updated to the current interface. This fixes compiler errors on some older compilers.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Templatized formatters in the legacy IO system to accept char type. Also removed calls to <code class="computeroutput">boost::lexical_cast</code>.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h3>
+<a name="id1035625"></a>Changes from Boost 1.31 to 1.32 (date_time 1.02 to 1.03)</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Snap to end of month behavior corrected for year_functor. Previously, starting
+ from 2000-Feb-28 (leap year and not end of month) and iterating through the next
+ leap year would result in 2004-Feb-29 instead of 2004-Feb-28. This behavior has
+ been corrected to produce the correct result of 2004-Feb-28. Thanks to Bart Garst
+ for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Free function for creating a ptime object from a FILETIME struct. This function
+ is only available on platforms that define BOOST_HAS_FTIME.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Microsecond time clock is now available on most windows compilers as well as
+ Unix.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Use of the boost::serialization library is now available with most of the
+ date_time classes. Classes capable of serialization are: date_generator classes,
+ date, days, date_period, greg_month, greg_weekday, greg_day, ptime, time_duration,
+ and time_period. Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Functions added to convert date and time classes to wstring. The library now
+ provides to_*_wstring as well as to_*_string functions for: simple, iso,
+ iso_extended, and sql for dates and compilers that support wstrings. Thanks to
+ Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Period classes now handle zero length and NULL periods correctly. A NULL period
+ is a period with a negative length. Thanks to Frank Wolf and Bart Garst for this
+ change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added end_of_month function to gregorian::date to return the last day of
+ the current month represented by the date. Result is undefined for
+ not_a_date_time or infinities.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Removed incorrect usage of BOOST_NO_CWCHAR macro throughout library.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>New names added for some date classes. Original names are still valid but may
+ some day be deprecated. Changes are:
+ <table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td>date_duration</td>
+<td>is now</td>
+<td>days</td>
+</tr>
+<tr>
+<td>nth_kday_of_month</td>
+<td>is now</td>
+<td>nth_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>first_kday_of_month</td>
+<td>is now</td>
+<td>first_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>last_kday_of_month</td>
+<td>is now</td>
+<td>last_day_of_the_week_in_month</td>
+</tr>
+<tr>
+<td>first_kday_after</td>
+<td>is now</td>
+<td>first_day_of_the_week_after</td>
+</tr>
+<tr>
+<td>first_kday_before</td>
+<td>is now</td>
+<td>first_day_of_the_week_before</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Free functions for date generators added. Functions are: days_until_weekday, days_before_weekday, next_weekday, and previous_weekday.
+ <pre class="screen">days days_until_weekday(date, greg_weekday);
+days days_before_weekday(date, greg_weekday);
+date next_weekday(date, greg_weekday);
+date previous_weekday(date, greg_weekday);</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>New experimental duration types added for months, years, and weeks. These classes
+ also provide mathematical operators for use with date and time classes. Be aware
+ that adding of months or years a time or date past the 28th of a month may show
+ non-normal mathematical properties. This is a result of 'end-of-month'
+ snapping used in the calculation. The last example below illustrates the
+ issue.
+
+ <pre class="screen">months m(12);
+years y(1);
+m == y; // true
+days d(7);
+weeks w(1);
+d == w; // true
+ptime t(...);
+t += months(3);
+date d(2004,Jan,30);
+d += months(1); //2004-Feb-29
+d -= months(1); //2004-Jan-29</pre>
+ Input streaming is not yet implemented for these types.
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Unifying base class for date_generators brought in to gregorian namespace. See <a href="examples.html#date_time.examples.print_holidays" title="Print Holidays">Print Holidays Example</a>.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added constructors for date and ptime that allow for default construction (both)
+ and special values construction (ptime, both now support this). Default
+ constructors initialize the objects to not_a_date_time (NADT).
+ <pre class="screen">ptime p_nadt(not_a_date_time);
+ptime p_posinf(pos_infin);
+ptime p; // p == NADT
+date d; // d == NADT</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Output streaming now supports wide stream output on compiler / standard library combinations that support wide streams. This allows code like:
+ <pre class="screen">std::wstringstream wss;
+date d(2003,Aug,21);
+wss &lt;&lt; d;</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Input streaming for date and time types is now supported on both wide and narrow streams:
+ <pre class="screen">date d(not_a_date_time);
+std::stringstream ss("2000-FEB-29");
+ss &gt;&gt; d; //Feb 29th, 2000
+std::wstringstream ws("2000-FEB-29");
+ws &gt;&gt; d; //Feb 29th, 2000</pre>
+ Thanks to Bart Garst for this change.
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td> Fixed bug in duration_from_string() where a string formatted with
+ less than full amount of fractional digits created an incorrect
+ time_duration. With microsecond resolution for time durations
+ the string "1:01:01.010" created a time duration of
+ 01:01:01.000010 instead of 01:01:01.010000
+ </td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed the special value constructor for gregorian::date and posix_time::ptime
+ when constructing with min_date_time or max_date_time. The wrong value was
+ constructed for these.
+ </td>
+</tr>
+</tbody>
+</table></div>
+<h3>
+<a name="id1035900"></a>Changes from Boost 1.30 to 1.31 (date_time 1.01 to 1.02)</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Build configuration updated so dll, statically, and dynamically linkable library files are now produced with MSVC compilers. See <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build/Compiler Information</a> for more details.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Time_duration from_string is now correctly constructed from a negative value. (ie "-0:39:00.000") Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed many MSVC compiler warnings when compiled with warning level 4.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added prefix decrement operator (--) for date and time iterators. See <a href="posix_time.html#date_time.posix_time.time_iterators" title="Time Iterators">Time Iterators</a> and <a href="gregorian.html#date_time.gregorian.date_iterators" title="Date Iterators">Date Iterators</a> for more details. Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Special_values functionality added for date_duration, time_duration and time classes. Code provided by Bart Garst.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed time_duration_traits calculation bug which was causing time duration to be limited to 32bit range even when 64 bits were available. Thanks to Joe de Guzman for tracking this down.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Provided additional operators for duration types (eg: date_duration, time_duration). This includes dividable by integer and fixes to allow +=, -= operators. Thanks to Bart Garst for writing this code. Also, the documentation of <a href="details.html#date_time.calculations" title="Calculations">Calculations</a> has been improved.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Added typedefs to boost::gregorian gregorian_types.hpp various date_generator function classes.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added from_time_t function to convert time_t to a ptime.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added a span function for combining periods. See <a href="gregorian.html#date_time.gregorian.date_period" title="Date Period">date period</a> and <a href="posix_time.html#date_time.posix_time.time_period" title="Time Period">time period</a> docs.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added a function to time_duration to get the total number of seconds in a
+ duration truncating any fractional seconds. In addition, other resolutions
+ were added to allow for easy conversions. For example
+ <pre class="screen">seconds(1).total_milliseconds() == 1000
+seconds(1).total_microseconds() == 1000000
+hours(1).total_milliseconds() == 3600*1000 //3600 sec/hour
+seconds(1).total_nanoseconds() == 1000000000</pre>
+</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added output streaming operators for the <a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date generator</a> classes - partial_date, first_kday_after, first_kday_before, etc. Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added unary- operators for durations for reversing the sign of a time duration. For example:
+ <pre class="screen">time_duration td(5,0,0); //5 hours
+td = -td; //-5 hours</pre>
+ Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added support for parsing strings with 'month names'. Thus creating a date object from string now accepts multiple formats ("2003-10-31","2003-Oct-31", and "2003-October-31"). Thus, date d = from_simple_string("2003-Feb-27") is now allowed. A bad month name string ( from_simple_string("2003-SomeBogusMonthName-27")) will cause a bad_month exception. On most compilers the string compare is case insensitive. Thanks to Bart Garst for this work.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>In addition to support for month names or numbers, functions have been added to create date objects from multi-ordered date strings. Ex: "January-21-2002", "2002-Jan-21", and "21-Jan-2003". See <a href="gregorian.html#date_time.gregorian.date_class" title="Date">Date Class</a> for more details.</td>
+</tr>
+<tr>
+<td>Bug-Fix</td>
+<td>Various documentation fixes. Thanks to Bart Garst for updates.</td>
+</tr>
+</tbody>
+</table></div>
+<h3>
+<a name="id1036125"></a>Changes from Boost 1.29 to 1.30 (date_time 1.00 to 1.01)</h3>
+<p>
+ Notice: The interface to the partial_date class (see <a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date_algorithms</a>) was changed. The order of construction parameters was changed which will cause some code to fail execution. This change was made to facilitate more generic local time adjustment code. Thus instead of specifying partial_date pd(Dec,25) the code needs to be changed to partial_date pd(25, Dec);
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Type</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Bug Fix</td>
+<td>Added new experimental feature for Daylight Savings Time calculations. This allows traits based specification of dst rules.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Added new interfaces to calculate julian day and modified julian day to the gregorian date class. See <a href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a>.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Add new interface to calculate iso 8601 week number for a date. See <a href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a>.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td>Add an iso 8601 time date-time format (eg: YYYYMMDDTHHHMMSS) parsing function. See <a href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">Class ptime</a> for more information.</td>
+</tr>
+<tr>
+<td>Feature</td>
+<td> Added a length function to the period template so that both date_periods and time_periods will now support this function.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Split Jamfiles so that libs/date_time/build/Jamfile only builds library and /libs/date_time/libs/test/Jamfile which runs tests.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed many minor documentation issues.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Removed the DATE_TIME_INLINE macro which was causing link errors. This macro is no longer needed in projects using the library.</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Added missing typedef for year_iterator to gregorian_types.hpp</td>
+</tr>
+<tr>
+<td>Bug Fix</td>
+<td>Fixed problem with gregorian ostream operators that prevented the use of wide streams.</td>
+</tr>
+<tr>
+<td>Bug-Fix</td>
+<td>Tighten error handling for dates so that date(2002, 2, 29) will throw a bad_day_of_month exception. Previously the date would be incorrectly constructed. Reported by sourceforge bug: 628054 among others.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.acknowledgements"></a>Acknowledgements</h4></div></div></div>
+<p>
+ Many people have contributed to the development of this library. In particular Hugo Duncan and Joel de Guzman for help with porting to various compilers. For initial development of concepts and design Corwin Joy and Michael Kenniston deserve special thanks. Also extra thanks to Michael for writing up the theory and tradeoffs part of the documentation. Dave Zumbro for initial inspiration and sage thoughts. Many thanks to boost reviewers and users including: William Seymour, Kjell Elster, Beman Dawes, Gary Powell, Andrew Maclean, William Kempf, Peter Dimov, Chris Little, David Moore, Darin Adler, Gennadiy Rozental, Joachim Achtzehnter, Paul Bristow, Jan Langer, Mark Rodgers, Glen Knowles, Matthew Denman, and George Heintzelman.
+ </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="serialization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/doxy.html b/doc/html/date_time/doxy.html
new file mode 100644
index 0000000000..3c2eafc0f5
--- /dev/null
+++ b/doc/html/date_time/doxy.html
@@ -0,0 +1,1833 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Library Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="examples.html" title="Examples">
+<link rel="next" href="../day_functor.html" title="Class template day_functor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="../day_functor.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="date_time.doxy"></a>Library Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#date_time_reference">Date Time Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#gregorian_reference">Gregorian Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#posix_time_reference">Posix Time Reference</a></span></dt>
+<dt><span class="section"><a href="doxy.html#local_time_reference">Local Time Reference</a></span></dt>
+</dl></div>
+<p>
+ The following is a detailed reference of the date_time library. A click on any of the reference links will take you to a list of the header files found in that section. Following one of those links will take you to a list of the items declared in that header file. Further sublinks take you to detailed descriptions of each individual item.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time_reference"></a>Date Time Reference</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#id797437">Header &lt;boost/date_time/adjust_functors.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id793643">Header &lt;boost/date_time/c_local_time_adjustor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1110111">Header &lt;boost/date_time/c_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1036388">Header &lt;boost/date_time/compiler_config.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id860535">Header &lt;boost/date_time/constrained_value.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id823767">Header &lt;boost/date_time/date.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1044589">Header &lt;boost/date_time/date_clock_device.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1033447">Header &lt;boost/date_time/date_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id729918">Header &lt;boost/date_time/date_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id798566">Header &lt;boost/date_time/date_duration_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id857461">Header &lt;boost/date_time/date_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1001696">Header &lt;boost/date_time/date_format_simple.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id891955">Header &lt;boost/date_time/date_formatting.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id967405">Header &lt;boost/date_time/date_formatting_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id968176">Header &lt;boost/date_time/date_formatting_locales.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id899283">Header &lt;boost/date_time/date_generator_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id872048">Header &lt;boost/date_time/date_generator_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1109842">Header &lt;boost/date_time/date_generators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1034813">Header &lt;boost/date_time/date_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1072331">Header &lt;boost/date_time/date_names_put.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id866029">Header &lt;boost/date_time/dst_rules.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1045441">Header &lt;boost/date_time/dst_transition_generators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id927449">Header &lt;boost/date_time/filetime_functions.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1104639">Header &lt;boost/date_time/format_date_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1040370">Header &lt;boost/date_time/gregorian_calendar.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id928427">Header &lt;boost/date_time/int_adapter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id941603">Header &lt;boost/date_time/iso_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1045289">Header &lt;boost/date_time/local_time_adjustor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id941196">Header &lt;boost/date_time/local_timezone_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1070509">Header &lt;boost/date_time/microsec_time_clock.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id908537">Header &lt;boost/date_time/parse_format_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id906808">Header &lt;boost/date_time/period.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id836121">Header &lt;boost/date_time/period_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id802180">Header &lt;boost/date_time/period_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id894004">Header &lt;boost/date_time/special_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id933561">Header &lt;boost/date_time/special_values_formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id970191">Header &lt;boost/date_time/special_values_parser.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id794691">Header &lt;boost/date_time/string_convert.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id977101">Header &lt;boost/date_time/string_parse_tree.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id864292">Header &lt;boost/date_time/strings_from_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id831553">Header &lt;boost/date_time/time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id689644">Header &lt;boost/date_time/time_clock.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id796246">Header &lt;boost/date_time/time_defs.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id829537">Header &lt;boost/date_time/time_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id695070">Header &lt;boost/date_time/time_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id856862">Header &lt;boost/date_time/time_formatting_streams.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1003720">Header &lt;boost/date_time/time_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1004001">Header &lt;boost/date_time/time_parsing.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1004309">Header &lt;boost/date_time/time_resolution_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id822688">Header &lt;boost/date_time/time_system_counted.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id869840">Header &lt;boost/date_time/time_system_split.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id832253">Header &lt;boost/date_time/time_zone_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id977629">Header &lt;boost/date_time/time_zone_names.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1034888">Header &lt;boost/date_time/tz_db_base.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id796064">Header &lt;boost/date_time/wrapping_int.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id975767">Header &lt;boost/date_time/year_month_day.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id797437"></a>Header &lt;<a href="../../../boost/date_time/adjust_functors.hpp" target="_top">boost/date_time/adjust_functors.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../day_functor.html" title="Class template day_functor">day_functor</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../month_functor.html" title="Class template month_functor">month_functor</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../week_functor.html" title="Class template week_functor">week_functor</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../year_functor.html" title="Class template year_functor">year_functor</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id793643"></a>Header &lt;<a href="../../../boost/date_time/c_local_time_adjustor.hpp" target="_top">boost/date_time/c_local_time_adjustor.hpp</a>&gt;</h5></div></div></div>
+<p>Time adjustment calculations based on machine</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="bold"><strong>class</strong></span> <a href="../c_local_adjustor.html" title="Class template c_local_adjustor">c_local_adjustor</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1110111"></a>Header &lt;<a href="../../../boost/date_time/c_time.hpp" target="_top">boost/date_time/c_time.hpp</a>&gt;</h5></div></div></div>
+<p>Provide workarounds related to the ctime header</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> std {
+}<span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../c_time.html" title="Struct c_time">c_time</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1036388"></a>Header &lt;<a href="../../../boost/date_time/compiler_config.hpp" target="_top">boost/date_time/compiler_config.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> std {
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id860535"></a>Header &lt;<a href="../../../boost/date_time/constrained_value.hpp" target="_top">boost/date_time/constrained_value.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> CV {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> value_policies&gt; <span class="bold"><strong>class</strong></span> <a href="../constrained_value.html" title="Class template constrained_value">constrained_value</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rep_type, rep_type min_value, rep_type max_value,
+             <span class="bold"><strong>typename</strong></span> exception_type&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../simple_exception_policy.html" title="Class template simple_exception_policy">simple_exception_policy</a>;
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id935346"></a>violation_enum { min_violation, max_violation };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id823767"></a>Header &lt;<a href="../../../boost/date_time/date.hpp" target="_top">boost/date_time/date.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> calendar, <span class="bold"><strong>typename</strong></span> duration_type_&gt; <span class="bold"><strong>class</strong></span> <a href="../boost/date_time/date.html" title="Class template date">date</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1044589"></a>Header &lt;<a href="../../../boost/date_time/date_clock_device.hpp" target="_top">boost/date_time/date_clock_device.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../day_clock.html" title="Class template day_clock">day_clock</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1033447"></a>Header &lt;<a href="../../../boost/date_time/date_defs.hpp" target="_top">boost/date_time/date_defs.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id800931"></a>weekdays { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday,
+                    Saturday };
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id903227"></a>months_of_year { Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct,
+                          Nov, Dec, NotAMonth, NumMonths };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id729918"></a>Header &lt;<a href="../../../boost/date_time/date_duration.hpp" target="_top">boost/date_time/date_duration.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> duration_rep_traits&gt; <span class="bold"><strong>class</strong></span> <a href="../date_duration.html" title="Class template date_duration">date_duration</a>;
+
+    <span class="bold"><strong>struct</strong></span> <a href="../duration_traits_long.html" title="Struct duration_traits_long">duration_traits_long</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../duration_traits_adapted.html" title="Struct duration_traits_adapted">duration_traits_adapted</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id798566"></a>Header &lt;<a href="../../../boost/date_time/date_duration_types.hpp" target="_top">boost/date_time/date_duration_types.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> duration_config&gt; <span class="bold"><strong>class</strong></span> <a href="../weeks_duration.html" title="Class template weeks_duration">weeks_duration</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_config&gt; <span class="bold"><strong>class</strong></span> <a href="../months_duration.html" title="Class template months_duration">months_duration</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_config&gt; <span class="bold"><strong>class</strong></span> <a href="../years_duration.html" title="Class template years_duration">years_duration</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id857461"></a>Header &lt;<a href="../../../boost/date_time/date_facet.hpp" target="_top">boost/date_time/date_facet.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../date_facet.html" title="Class template date_facet">date_facet</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> InItrT = std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../date_input_facet.html" title="Class template date_input_facet">date_input_facet</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1001696"></a>Header &lt;<a href="../../../boost/date_time/date_format_simple.hpp" target="_top">boost/date_time/date_format_simple.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../simple_format.html" title="Class template simple_format">simple_format</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id893464-bb.html" title="Class simple_format&lt;wchar_t&gt;">simple_format</a>&lt;<span class="bold"><strong>wchar_t</strong></span>&gt;;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id891955"></a>Header &lt;<a href="../../../boost/date_time/date_formatting.hpp" target="_top">boost/date_time/date_formatting.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> month_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../month_formatter.html" title="Class template month_formatter">month_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ymd_formatter.html" title="Class template ymd_formatter">ymd_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../date_formatter.html" title="Class template date_formatter">date_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id967405"></a>Header &lt;<a href="../../../boost/date_time/date_formatting_limited.hpp" target="_top">boost/date_time/date_formatting_limited.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id968176"></a>Header &lt;<a href="../../../boost/date_time/date_formatting_locales.hpp" target="_top">boost/date_time/date_formatting_locales.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ostream_month_formatter.html" title="Class template ostream_month_formatter">ostream_month_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> weekday_type, <span class="bold"><strong>typename</strong></span> facet_type,
+             <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ostream_weekday_formatter.html" title="Class template ostream_weekday_formatter">ostream_weekday_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type, <span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ostream_ymd_formatter.html" title="Class template ostream_ymd_formatter">ostream_ymd_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ostream_date_formatter.html" title="Class template ostream_date_formatter">ostream_date_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id899283"></a>Header &lt;<a href="../../../boost/date_time/date_generator_formatter.hpp" target="_top">boost/date_time/date_generator_formatter.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../date_generator_formatter.html" title="Class template date_generator_formatter">date_generator_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id872048"></a>Header &lt;<a href="../../../boost/date_time/date_generator_parser.hpp" target="_top">boost/date_time/date_generator_parser.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../date_generator_parser.html" title="Class template date_generator_parser">date_generator_parser</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1109842"></a>Header &lt;<a href="../../../boost/date_time/date_generators.hpp" target="_top">boost/date_time/date_generators.hpp</a>&gt;</h5></div></div></div>
+<p>Definition and implementation of date algorithm templates</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../year_based_generator.html" title="Class template year_based_generator">year_based_generator</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../partial_date.html" title="Class template partial_date">partial_date</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../nth_kday_of_month.html" title="Class template nth_kday_of_month">nth_kday_of_month</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../first_kday_of_month.html" title="Class template first_kday_of_month">first_kday_of_month</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../last_kday_of_month.html" title="Class template last_kday_of_month">last_kday_of_month</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../first_kday_after.html" title="Class template first_kday_after">first_kday_after</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../first_kday_before.html" title="Class template first_kday_before">first_kday_before</a>;
+
+    <span class="emphasis"><em>// Returns nth arg as string. 1 -&gt; "first", 2 -&gt; "second", max is 5. </em></span>
+    <span class="type">BOOST_DATE_TIME_DECL <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="nth_as_str"></a>nth_as_str(<span class="bold"><strong>int</strong></span> n);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+      <span class="type">date_type::duration_type</span>
+      <a href="../days_until_weekday.html" title="Function template days_until_weekday">days_until_weekday</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> weekday_type &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+      <span class="type">date_type::duration_type</span>
+      <a href="../days_before_weekday.html" title="Function template days_before_weekday">days_before_weekday</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> weekday_type &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+      <span class="type">date_type</span> <a href="../next_weekday.html" title="Function template next_weekday">next_weekday</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> weekday_type &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+      <span class="type">date_type</span> <a href="../previous_weekday.html" title="Function template previous_weekday">previous_weekday</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> weekday_type &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1034813"></a>Header &lt;<a href="../../../boost/date_time/date_iterator.hpp" target="_top">boost/date_time/date_iterator.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../date_itr_base.html" title="Class template date_itr_base">date_itr_base</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> offset_functor, <span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../date_itr.html" title="Class template date_itr">date_itr</a>;
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id858546"></a>date_resolutions { day, week, months, year, decade, century,
+                            NumDateResolutions };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1072331"></a>Header &lt;<a href="../../../boost/date_time/date_names_put.hpp" target="_top">boost/date_time/date_names_put.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Config, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>,
+             <span class="bold"><strong>typename</strong></span> <a href="../OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> = std::ostreambuf_iterator&lt;charT&gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../date_names_put.html" title="Class template date_names_put">date_names_put</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Config, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>,
+             <span class="bold"><strong>typename</strong></span> <a href="../OutputIterator.html" title="Concept OutputIterator">OutputIterator</a> = std::ostreambuf_iterator&lt;charT&gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../all_date_names_put.html" title="Class template all_date_names_put">all_date_names_put</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id866029"></a>Header &lt;<a href="../../../boost/date_time/dst_rules.hpp" target="_top">boost/date_time/dst_rules.hpp</a>&gt;</h5></div></div></div>
+<p>Contains template class to provide static dst rule calculations</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../dst_calculator.html" title="Class template dst_calculator">dst_calculator</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> time_duration_type,
+             <span class="bold"><strong>typename</strong></span> dst_traits&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../dst_calc_engine.html" title="Class template dst_calc_engine">dst_calc_engine</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_,
+             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_start_offset_minutes = ,
+             <span class="bold"><strong>short</strong></span> dst_length_minutes = &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../us_dst_rules.html" title="Class template us_dst_rules">us_dst_rules</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../null_dst_rules.html" title="Class template null_dst_rules">null_dst_rules</a>;
+
+    <span class="bold"><strong>enum</strong></span> <a name="id823267"></a>time_is_dst_result { is_not_in_dst, is_in_dst, ambiguous,
+                              invalid_time_label };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1045441"></a>Header &lt;<a href="../../../boost/date_time/dst_transition_generators.hpp" target="_top">boost/date_time/dst_transition_generators.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>class</strong></span> <a href="../dst_day_calc_rule.html" title="Class template dst_day_calc_rule">dst_day_calc_rule</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> spec&gt; <span class="bold"><strong>class</strong></span> <a href="../day_calc_dst_rule.html" title="Class template day_calc_dst_rule">day_calc_dst_rule</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id927449"></a>Header &lt;<a href="../../../boost/date_time/filetime_functions.hpp" target="_top">boost/date_time/filetime_functions.hpp</a>&gt;</h5></div></div></div>
+<p>Function(s) for converting between a FILETIME structure and a time object. This file is only available on systems that have BOOST_HAS_FTIME defined.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="type">time_type</span> <a href="../time_from_ftime.html" title="Function template time_from_ftime">time_from_ftime</a>(<span class="bold"><strong>const</strong></span> FILETIME &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1104639"></a>Header &lt;<a href="../../../boost/date_time/format_date_parser.hpp" target="_top">boost/date_time/format_date_parser.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../format_date_parser.html" title="Class template format_date_parser">format_date_parser</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">int_type</span> <a href="../fixed_string_to_int.html" title="Function template fixed_string_to_int">fixed_string_to_int</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                                   std::istreambuf_iterator&lt; charT &gt; &amp;,
+                                   parse_match_result&lt; charT &gt; &amp;,
+                                   <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">int_type</span> <a href="../var_string_to_int.html" title="Function template var_string_to_int">var_string_to_int</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                                 std::istreambuf_iterator&lt; charT &gt; &amp;,
+                                 <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1040370"></a>Header &lt;<a href="../../../boost/date_time/gregorian_calendar.hpp" target="_top">boost/date_time/gregorian_calendar.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type_, <span class="bold"><strong>typename</strong></span> date_int_type_&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../gregorian_calendar_base.html" title="Class template gregorian_calendar_base">gregorian_calendar_base</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id928427"></a>Header &lt;<a href="../../../boost/date_time/int_adapter.hpp" target="_top">boost/date_time/int_adapter.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_&gt; <span class="bold"><strong>class</strong></span> <a href="../int_adapter.html" title="Class template int_adapter">int_adapter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits, <span class="bold"><strong>typename</strong></span> int_type&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a href="../id977316.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; charT, traits &gt; &amp;,
+                 <span class="bold"><strong>const</strong></span> <a href="../int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; int_type &gt; &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id941603"></a>Header &lt;<a href="../../../boost/date_time/iso_format.hpp" target="_top">boost/date_time/iso_format.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../iso_format_base.html" title="Class template iso_format_base">iso_format_base</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id1045709-bb.html" title="Class iso_format_base&lt;wchar_t&gt;">iso_format_base</a>&lt;<span class="bold"><strong>wchar_t</strong></span>&gt;;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../iso_format.html" title="Class template iso_format">iso_format</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../iso_extended_format.html" title="Class template iso_extended_format">iso_extended_format</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1045289"></a>Header &lt;<a href="../../../boost/date_time/local_time_adjustor.hpp" target="_top">boost/date_time/local_time_adjustor.hpp</a>&gt;</h5></div></div></div>
+<p>Time adjustment calculations for local times</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type, <span class="bold"><strong>short</strong></span> hours,
+             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> minutes = &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../utc_adjustment.html" title="Class template utc_adjustment">utc_adjustment</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> dst_rules&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../id1075450.html" title="Class template dynamic_local_time_adjustor">dynamic_local_time_adjustor</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> dst_rules,
+             <span class="bold"><strong>typename</strong></span> utc_offset_rules&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../static_local_time_adjustor.html" title="Class template static_local_time_adjustor">static_local_time_adjustor</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>short</strong></span> utc_offset, <span class="bold"><strong>typename</strong></span> dst_rule&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../local_adjustor.html" title="Class template local_adjustor">local_adjustor</a>;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="dummy_to_prevent_msvc6_ice"></a>dummy_to_prevent_msvc6_ice();
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id941196"></a>Header &lt;<a href="../../../boost/date_time/local_timezone_defs.hpp" target="_top">boost/date_time/local_timezone_defs.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>struct</strong></span> <a href="../us_dst_trait.html" title="Struct template us_dst_trait">us_dst_trait</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>struct</strong></span> <a href="../eu_dst_trait.html" title="Struct template eu_dst_trait">eu_dst_trait</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>struct</strong></span> <a href="../uk_dst_trait.html" title="Struct template uk_dst_trait">uk_dst_trait</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt; <span class="bold"><strong>struct</strong></span> <a href="../acst_dst_trait.html" title="Struct template acst_dst_trait">acst_dst_trait</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1070509"></a>Header &lt;<a href="../../../boost/date_time/microsec_time_clock.hpp" target="_top">boost/date_time/microsec_time_clock.hpp</a>&gt;</h5></div></div></div>
+<p>This file contains a high resolution time clock implementation.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="bold"><strong>class</strong></span> <a href="../microsec_clock.html" title="Class template microsec_clock">microsec_clock</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id908537"></a>Header &lt;<a href="../../../boost/date_time/parse_format_base.hpp" target="_top">boost/date_time/parse_format_base.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id908553"></a>month_format_spec { month_as_integer, month_as_short_string,
+                             month_as_long_string };
+    <span class="bold"><strong>enum</strong></span> <a href="../id974797.html" title="Type ymd_order_spec">ymd_order_spec</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id906808"></a>Header &lt;<a href="../../../boost/date_time/period.hpp" target="_top">boost/date_time/period.hpp</a>&gt;</h5></div></div></div>
+<p>This file contain the implementation of the period abstraction. This is basically the same idea as a range. Although this class is intended for use in the time library, it is pretty close to general enough for other numeric uses.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> point_rep, <span class="bold"><strong>typename</strong></span> duration_rep&gt; <span class="bold"><strong>class</strong></span> <a href="../period.html" title="Class template period">period</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id836121"></a>Header &lt;<a href="../../../boost/date_time/period_formatter.hpp" target="_top">boost/date_time/period_formatter.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../period_formatter.html" title="Class template period_formatter">period_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id802180"></a>Header &lt;<a href="../../../boost/date_time/period_parser.hpp" target="_top">boost/date_time/period_parser.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT&gt; <span class="bold"><strong>class</strong></span> <a href="../period_parser.html" title="Class template period_parser">period_parser</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id894004"></a>Header &lt;<a href="../../../boost/date_time/special_defs.hpp" target="_top">boost/date_time/special_defs.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+
+    <span class="bold"><strong>enum</strong></span> <a name="id837356"></a>special_values { not_a_date_time, neg_infin, pos_infin,
+                          min_date_time, max_date_time, not_special,
+                          NumSpecialValues };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id933561"></a>Header &lt;<a href="../../../boost/date_time/special_values_formatter.hpp" target="_top">boost/date_time/special_values_formatter.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../special_values_formatter.html" title="Class template special_values_formatter">special_values_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id970191"></a>Header &lt;<a href="../../../boost/date_time/special_values_parser.hpp" target="_top">boost/date_time/special_values_parser.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id794691"></a>Header &lt;<a href="../../../boost/date_time/string_convert.hpp" target="_top">boost/date_time/string_convert.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> InputT, <span class="bold"><strong>typename</strong></span> OutputT&gt;
+      <span class="type">std::basic_string&lt; OutputT &gt;</span>
+      <a href="../convert_string_type.html" title="Function template convert_string_type">convert_string_type</a>(<span class="bold"><strong>const</strong></span> std::basic_string&lt; InputT &gt; &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id977101"></a>Header &lt;<a href="../../../boost/date_time/string_parse_tree.hpp" target="_top">boost/date_time/string_parse_tree.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>struct</strong></span> <a href="../parse_match_result.html" title="Struct template parse_match_result">parse_match_result</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>struct</strong></span> <a href="../string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_ostream&lt; charT &gt; &amp;</span>
+      <a name="id864246"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT &gt; &amp; os,
+                 parse_match_result&lt; charT &gt; &amp; mr);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id864292"></a>Header &lt;<a href="../../../boost/date_time/strings_from_facet.hpp" target="_top">boost/date_time/strings_from_facet.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::vector&lt; std::basic_string&lt; charT &gt; &gt;</span>
+      <a href="../gather_month_strings.html" title="Function template gather_month_strings">gather_month_strings</a>(<span class="bold"><strong>const</strong></span> std::locale &amp;, <span class="bold"><strong>bool</strong></span> = true);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::vector&lt; std::basic_string&lt; charT &gt; &gt;</span>
+      <a href="../gather_weekday_strings.html" title="Function template gather_weekday_strings">gather_weekday_strings</a>(<span class="bold"><strong>const</strong></span> std::locale &amp;, <span class="bold"><strong>bool</strong></span> = true);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id831553"></a>Header &lt;<a href="../../../boost/date_time/time.hpp" target="_top">boost/date_time/time.hpp</a>&gt;</h5></div></div></div>
+<p>This file contains the interface for the time associated classes.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> time_system&gt; <span class="bold"><strong>class</strong></span> <a href="../base_time.html" title="Class template base_time">base_time</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id689644"></a>Header &lt;<a href="../../../boost/date_time/time_clock.hpp" target="_top">boost/date_time/time_clock.hpp</a>&gt;</h5></div></div></div>
+<p>This file contains the interface for clock devices.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="bold"><strong>class</strong></span> <a href="../second_clock.html" title="Class template second_clock">second_clock</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id796246"></a>Header &lt;<a href="../../../boost/date_time/time_defs.hpp" target="_top">boost/date_time/time_defs.hpp</a>&gt;</h5></div></div></div>
+<p>This file contains nice definitions for handling the resoluion of various time reprsentations.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id796267"></a>time_resolutions { sec, tenth, hundreth, milli, ten_thousandth,
+                            micro, nano, NumResolutions };
+
+    <span class="emphasis"><em>// </em></span>
+    <span class="bold"><strong>enum</strong></span> <a name="id685360"></a>dst_flags { not_dst, is_dst, calculate };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id829537"></a>Header &lt;<a href="../../../boost/date_time/time_duration.hpp" target="_top">boost/date_time/time_duration.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> rep_type&gt; <span class="bold"><strong>class</strong></span> <a href="../id829552.html" title="Class template time_duration">time_duration</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_duration, boost::int64_t frac_of_second&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../subsecond_duration.html" title="Class template subsecond_duration">subsecond_duration</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id695070"></a>Header &lt;<a href="../../../boost/date_time/time_facet.hpp" target="_top">boost/date_time/time_facet.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt; <span class="bold"><strong>struct</strong></span> <a href="../time_formats.html" title="Struct template time_formats">time_formats</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../time_facet.html" title="Class template time_facet">time_facet</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> InItrT = std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../time_input_facet.html" title="Class template time_input_facet">time_input_facet</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id856862"></a>Header &lt;<a href="../../../boost/date_time/time_formatting_streams.hpp" target="_top">boost/date_time/time_formatting_streams.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../id838605.html" title="Class template ostream_time_duration_formatter">ostream_time_duration_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../ostream_time_formatter.html" title="Class template ostream_time_formatter">ostream_time_formatter</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_period_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../id1003606.html" title="Class template ostream_time_period_formatter">ostream_time_period_formatter</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1003720"></a>Header &lt;<a href="../../../boost/date_time/time_iterator.hpp" target="_top">boost/date_time/time_iterator.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="bold"><strong>class</strong></span> <a href="../time_itr.html" title="Class template time_itr">time_itr</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1004001"></a>Header &lt;<a href="../../../boost/date_time/time_parsing.hpp" target="_top">boost/date_time/time_parsing.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+
+    <span class="emphasis"><em>// computes exponential math like 2^8 =&gt; 256, only works with positive integers </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type&gt;
+      <span class="type">int_type</span> <a name="power"></a>power(int_type base, int_type exponent);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration&gt;
+      <span class="type"><a href="../id829552.html" title="Class template time_duration">time_duration</a></span> <a href="../id1004063.html" title="Function template parse_delimited_time_duration">parse_delimited_time_duration</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+    <span class="emphasis"><em>// Utility function to split appart string. </em></span>
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1004120"></a>split(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>char</strong></span> sep, std::string &amp; first,
+               std::string &amp; second);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+      <span class="type">time_type</span> <a name="parse_delimited_time"></a>parse_delimited_time(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>char</strong></span> sep);
+
+    <span class="emphasis"><em>// Parse time duration part of an iso time of form: [-]hhmmss[.fff...] (eg: 120259.123 is 12 hours, 2 min, 59 seconds, 123000 microseconds). </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration&gt;
+      <span class="type"><a href="../id829552.html" title="Class template time_duration">time_duration</a></span> <a name="id1004218"></a>parse_undelimited_time_duration(<span class="bold"><strong>const</strong></span> std::string &amp; s);
+
+    <span class="emphasis"><em>// Parse time string of form YYYYMMDDThhmmss where T is delimeter between date and time. </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+      <span class="type">time_type</span> <a name="parse_iso_time"></a>parse_iso_time(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>char</strong></span> sep);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1004309"></a>Header &lt;<a href="../../../boost/date_time/time_resolution_traits.hpp" target="_top">boost/date_time/time_resolution_traits.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../id1004324.html" title="Struct time_resolution_traits_bi32_impl">time_resolution_traits_bi32_impl</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../id1004405.html" title="Struct time_resolution_traits_adapted32_impl">time_resolution_traits_adapted32_impl</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../id1004493.html" title="Struct time_resolution_traits_bi64_impl">time_resolution_traits_bi64_impl</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../id1004573.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> frac_sec_type, time_resolutions res,
+             #<span class="bold"><strong>if</strong></span>(defined(BOOST_MSVC)&amp;&amp;(_MSC_VER&lt;=1200)) boost::int64_t resolution_adjust,
+             #<span class="bold"><strong>else</strong></span> <span class="bold"><strong>typename</strong></span> frac_sec_type::int_type resolution_adjust,
+             #endif <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> frac_digits,
+             <span class="bold"><strong>typename</strong></span> v_type = boost::int32_t&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../time_resolution_traits.html" title="Class template time_resolution_traits">time_resolution_traits</a>;
+
+    <span class="bold"><strong>typedef</strong></span> time_resolution_traits&lt; <a href="../id1004405.html" title="Struct time_resolution_traits_adapted32_impl">time_resolution_traits_adapted32_impl</a>, milli, 1000, 3 &gt; milli_res;
+    <span class="bold"><strong>typedef</strong></span> time_resolution_traits&lt; <a href="../id1004573.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a>, micro, 1000000, 6 &gt; micro_res;
+    <span class="bold"><strong>typedef</strong></span> time_resolution_traits&lt; <a href="../id1004573.html" title="Struct time_resolution_traits_adapted64_impl">time_resolution_traits_adapted64_impl</a>, nano, 1000000000, 9 &gt; nano_res;
+
+    <span class="emphasis"><em>// Simple function to calculate absolute value of a numeric type. </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">T</span> <a name="absolute_value"></a>absolute_value(T x);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id822688"></a>Header &lt;<a href="../../../boost/date_time/time_system_counted.hpp" target="_top">boost/date_time/time_system_counted.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> config&gt; <span class="bold"><strong>struct</strong></span> <a href="../counted_time_rep.html" title="Struct template counted_time_rep">counted_time_rep</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_rep&gt; <span class="bold"><strong>class</strong></span> <a href="../counted_time_system.html" title="Class template counted_time_system">counted_time_system</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id869840"></a>Header &lt;<a href="../../../boost/date_time/time_system_split.hpp" target="_top">boost/date_time/time_system_split.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> config, boost::int32_t ticks_per_second&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../split_timedate_system.html" title="Class template split_timedate_system">split_timedate_system</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id832253"></a>Header &lt;<a href="../../../boost/date_time/time_zone_base.hpp" target="_top">boost/date_time/time_zone_base.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT = <span class="bold"><strong>char</strong></span>&gt; <span class="bold"><strong>class</strong></span> <a href="../time_zone_base.html" title="Class template time_zone_base">time_zone_base</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type&gt; <span class="bold"><strong>class</strong></span> <a href="../id895555.html" title="Class template dst_adjustment_offsets">dst_adjustment_offsets</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id977629"></a>Header &lt;<a href="../../../boost/date_time/time_zone_names.hpp" target="_top">boost/date_time/time_zone_names.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT = <span class="bold"><strong>char</strong></span>&gt; <span class="bold"><strong>class</strong></span> <a href="../time_zone_names_base.html" title="Class template time_zone_names_base">time_zone_names_base</a>;
+
+    <span class="bold"><strong>typedef</strong></span> <a href="../time_zone_names_base.html" title="Class template time_zone_names_base">time_zone_names_base</a>&lt; <span class="bold"><strong>char</strong></span> &gt; time_zone_names; <span class="emphasis"><em>// Specialization of timezone names for standard char. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1034888"></a>Header &lt;<a href="../../../boost/date_time/tz_db_base.hpp" target="_top">boost/date_time/tz_db_base.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../data_not_accessible.html" title="Struct data_not_accessible">data_not_accessible</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_field_count.html" title="Struct bad_field_count">bad_field_count</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type, <span class="bold"><strong>typename</strong></span> rule_type&gt; <span class="bold"><strong>class</strong></span> <a href="../tz_db_base.html" title="Class template tz_db_base">tz_db_base</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id796064"></a>Header &lt;<a href="../../../boost/date_time/wrapping_int.hpp" target="_top">boost/date_time/wrapping_int.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_, int_type_ wrap_val&gt; <span class="bold"><strong>class</strong></span> <a href="../wrapping_int.html" title="Class template wrapping_int">wrapping_int</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_, int_type_ wrap_min, int_type_ wrap_max&gt;
+     <span class="bold"><strong>class</strong></span> <a href="../wrapping_int2.html" title="Class template wrapping_int2">wrapping_int2</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id975767"></a>Header &lt;<a href="../../../boost/date_time/year_month_day.hpp" target="_top">boost/date_time/year_month_day.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> date_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> YearType, <span class="bold"><strong>typename</strong></span> MonthType, <span class="bold"><strong>typename</strong></span> DayType&gt;
+     <span class="bold"><strong>struct</strong></span> <a href="../year_month_day_base.html" title="Struct template year_month_day_base">year_month_day_base</a>;
+  }
+}</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="gregorian_reference"></a>Gregorian Reference</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#id1033380">Header &lt;boost/date_time/gregorian/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id865028">Header &lt;boost/date_time/gregorian/formatters.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id902141">Header &lt;boost/date_time/gregorian/formatters_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1035654">Header &lt;boost/date_time/gregorian/greg_calendar.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id836108">Header &lt;boost/date_time/gregorian/greg_date.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id906477">Header &lt;boost/date_time/gregorian/greg_day.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id862957">Header &lt;boost/date_time/gregorian/greg_day_of_year.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1106876">Header &lt;boost/date_time/gregorian/greg_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id891684">Header &lt;boost/date_time/gregorian/greg_duration_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id856825">Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id871347">Header &lt;boost/date_time/gregorian/greg_month.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id973291">Header &lt;boost/date_time/gregorian/greg_weekday.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id866121">Header &lt;boost/date_time/gregorian/greg_year.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id904088">Header &lt;boost/date_time/gregorian/greg_ymd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id897107">Header &lt;boost/date_time/gregorian/gregorian.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id930248">Header &lt;boost/date_time/gregorian/gregorian_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id975184">Header &lt;boost/date_time/gregorian/gregorian_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id908439">Header &lt;boost/date_time/gregorian/parsers.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1033380"></a>Header &lt;<a href="../../../boost/date_time/gregorian/conversion.hpp" target="_top">boost/date_time/gregorian/conversion.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+
+    <span class="emphasis"><em>// Converts a date to a tm struct. Throws out_of_range exception if date is a special value. </em></span>
+    <span class="type">tm</span> <a name="id976355"></a>to_tm(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Converts a tm structure into a date dropping the any time values. </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="date_from_tm"></a>date_from_tm(<span class="bold"><strong>const</strong></span> tm &amp; datetm);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id865028"></a>Header &lt;<a href="../../../boost/date_time/gregorian/formatters.hpp" target="_top">boost/date_time/gregorian/formatters.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id1031472"></a>to_simple_string_type(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </em></span>
+    <span class="type">std::string</span> <a name="id833128"></a>to_simple_string(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id937917"></a>to_simple_string_type(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+
+    <span class="emphasis"><em>// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </em></span>
+    <span class="type">std::string</span> <a name="id870808"></a>to_simple_string(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id867936"></a>to_iso_string_type(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+
+    <span class="emphasis"><em>// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </em></span>
+    <span class="type">std::string</span> <a name="id1044355"></a>to_iso_string(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id938626"></a>to_iso_extended_string_type(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </em></span>
+    <span class="type">std::string</span> <a name="id1044672"></a>to_iso_extended_string(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id903417"></a>to_iso_string_type(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Convert to iso standard string YYYYMMDD. Example: 20021231. </em></span>
+    <span class="type">std::string</span> <a name="id1044712"></a>to_iso_string(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="to_sql_string_type"></a>to_sql_string_type(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="type">std::string</span> <a name="to_sql_string"></a>to_sql_string(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </em></span>
+    <span class="type">std::wstring</span> <a name="id974497"></a>to_simple_wstring(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+
+    <span class="emphasis"><em>// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </em></span>
+    <span class="type">std::wstring</span> <a name="id974524"></a>to_simple_wstring(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </em></span>
+    <span class="type">std::wstring</span> <a name="id1105422"></a>to_iso_wstring(<span class="bold"><strong>const</strong></span> date_period &amp; d);
+
+    <span class="emphasis"><em>// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </em></span>
+    <span class="type">std::wstring</span> <a name="id902759"></a>to_iso_extended_wstring(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// Convert to iso standard string YYYYMMDD. Example: 20021231. </em></span>
+    <span class="type">std::wstring</span> <a name="id1040897"></a>to_iso_wstring(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="type">std::wstring</span> <a name="to_sql_wstring"></a>to_sql_wstring(<span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id902141"></a>Header &lt;<a href="../../../boost/date_time/gregorian/formatters_limited.hpp" target="_top">boost/date_time/gregorian/formatters_limited.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1035654"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_calendar.hpp" target="_top">boost/date_time/gregorian/greg_calendar.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>class</strong></span> <a href="../gregorian_calendar.html" title="Class gregorian_calendar">gregorian_calendar</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::int_adapter&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span> &gt; fancy_date_rep; <span class="emphasis"><em>// An internal date representation that includes infinities, not a date. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id836108"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_date.hpp" target="_top">boost/date_time/gregorian/greg_date.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>class</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id906477"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_day.hpp" target="_top">boost/date_time/gregorian/greg_day.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_day_of_month.html" title="Struct bad_day_of_month">bad_day_of_month</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../greg_day.html" title="Class greg_day">greg_day</a>;
+
+    <span class="bold"><strong>typedef</strong></span> CV::simple_exception_policy&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>, 1, 31, <a href="../bad_day_of_month.html" title="Struct bad_day_of_month">bad_day_of_month</a> &gt; greg_day_policies; <span class="emphasis"><em>// Policy class that declares error handling and day of month ranges. </em></span>
+    <span class="bold"><strong>typedef</strong></span> CV::constrained_value&lt; greg_day_policies &gt; greg_day_rep; <span class="emphasis"><em>// Generated represetation for gregorian day of month. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id862957"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_day_of_year.hpp" target="_top">boost/date_time/gregorian/greg_day_of_year.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_day_of_year.html" title="Struct bad_day_of_year">bad_day_of_year</a>;
+
+    <span class="bold"><strong>typedef</strong></span> CV::simple_exception_policy&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>, 1, 366, <a href="../bad_day_of_year.html" title="Struct bad_day_of_year">bad_day_of_year</a> &gt; greg_day_of_year_policies; <span class="emphasis"><em>// A day of the year range (1..366). </em></span>
+    <span class="bold"><strong>typedef</strong></span> CV::constrained_value&lt; greg_day_of_year_policies &gt; greg_day_of_year_rep; <span class="emphasis"><em>// Define a range representation type for the day of the year 1..366. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1106876"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_duration.hpp" target="_top">boost/date_time/gregorian/greg_duration.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::duration_traits_adapted date_duration_rep; <span class="emphasis"><em>// An internal date representation that includes infinities, not a date. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_duration&lt; date_duration_rep &gt; date_duration; <span class="emphasis"><em>// Durations in days for gregorian system. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_duration days; <span class="emphasis"><em>// Shorthand for date_duration. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id891684"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_duration_types.hpp" target="_top">boost/date_time/gregorian/greg_duration_types.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::months_duration&lt; <a href="../greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a> &gt; months;
+    <span class="bold"><strong>typedef</strong></span> date_time::years_duration&lt; <a href="../greg_durations_config.html" title="Struct greg_durations_config">greg_durations_config</a> &gt; years;
+    <span class="bold"><strong>typedef</strong></span> date_time::weeks_duration&lt; date_time::duration_traits_adapted &gt; weeks;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id856825"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_facet.hpp" target="_top">boost/date_time/gregorian/greg_facet.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a>;
+
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::date_names_put&lt; <a href="../greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a> &gt; greg_base_facet; <span class="emphasis"><em>// Create the base facet type for gregorian::date. </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a href="../id1037413.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; charT, traits &gt; &amp;, <span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a href="../id934588.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; charT, traits &gt; &amp;, <span class="bold"><strong>const</strong></span> <a href="../greg_month.html" title="Class greg_month">greg_month</a> &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a href="../id961567.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; charT, traits &gt; &amp;, <span class="bold"><strong>const</strong></span> <a href="../greg_weekday.html" title="Class greg_weekday">greg_weekday</a> &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a href="../id792474.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; charT, traits &gt; &amp;, <span class="bold"><strong>const</strong></span> date_period &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id873644"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> date_duration &amp; dd);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::partial_date. Output: "Jan 1" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id872679"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> partial_date &amp; pd);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::nth_kday_of_month. Output: "first Mon of Jun" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id1072136"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> nth_kday_of_month &amp; nkd);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::first_kday_of_month. Output: "first Mon of Jun" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id860901"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> first_kday_of_month &amp; fkd);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::last_kday_of_month. Output: "last Mon of Jun" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id926369"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> last_kday_of_month &amp; lkd);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::first_kday_after. Output: "first Mon after" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id1071947"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> first_kday_after &amp; fka);
+
+    <span class="emphasis"><em>// operator&lt;&lt; for gregorian::first_kday_before. Output: "first Mon before" </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id792870"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> first_kday_before &amp; fkb);
+
+    <span class="emphasis"><em>// operator&gt;&gt; for gregorian::date </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id792922"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+
+    <span class="emphasis"><em>// operator&gt;&gt; for gregorian::date_duration </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id1080500"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, date_duration &amp; dd);
+
+    <span class="emphasis"><em>// operator&gt;&gt; for gregorian::date_period </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id1075224"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, date_period &amp; dp);
+
+    <span class="emphasis"><em>// generates a locale with the set of gregorian name-strings of type char* </em></span>
+    <span class="type">BOOST_DATE_TIME_DECL std::locale</span>
+    <a name="id894118"></a>generate_locale(std::locale &amp; loc, <span class="bold"><strong>char</strong></span> type);
+
+    <span class="emphasis"><em>// Returns a pointer to a facet with a default set of names (English). </em></span>
+    <span class="type">BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <a href="../greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a>, <span class="bold"><strong>char</strong></span> &gt; *</span>
+    <a name="id938750"></a>create_facet_def(<span class="bold"><strong>char</strong></span> type);
+
+    <span class="emphasis"><em>// generates a locale with the set of gregorian name-strings of type wchar_t* </em></span>
+    <span class="type">BOOST_DATE_TIME_DECL std::locale</span>
+    <a name="id1076423"></a>generate_locale(std::locale &amp; loc, <span class="bold"><strong>wchar_t</strong></span> type);
+
+    <span class="emphasis"><em>// Returns a pointer to a facet with a default set of names (English). </em></span>
+    <span class="type">BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <a href="../greg_facet_config.html" title="Struct greg_facet_config">greg_facet_config</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; *</span>
+    <a name="id1001731"></a>create_facet_def(<span class="bold"><strong>wchar_t</strong></span> type);
+
+    <span class="emphasis"><em>// operator&gt;&gt; for gregorian::greg_month - throws exception if invalid month given </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id906525"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <a href="../greg_month.html" title="Class greg_month">greg_month</a> &amp; m);
+
+    <span class="emphasis"><em>// operator&gt;&gt; for gregorian::greg_weekday - throws exception if invalid weekday given </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id867789"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <a href="../greg_weekday.html" title="Class greg_weekday">greg_weekday</a> &amp; wd);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id871347"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_month.hpp" target="_top">boost/date_time/gregorian/greg_month.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_month.html" title="Struct bad_month">bad_month</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../greg_month.html" title="Class greg_month">greg_month</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::months_of_year months_of_year;
+    <span class="bold"><strong>typedef</strong></span> CV::simple_exception_policy&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>, 1, 12, <a href="../bad_month.html" title="Struct bad_month">bad_month</a> &gt; greg_month_policies; <span class="emphasis"><em>// Build a policy class for the greg_month_rep. </em></span>
+    <span class="bold"><strong>typedef</strong></span> CV::constrained_value&lt; greg_month_policies &gt; greg_month_rep; <span class="emphasis"><em>// A constrained range that implements the gregorian_month rules. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id973291"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_weekday.hpp" target="_top">boost/date_time/gregorian/greg_weekday.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_weekday.html" title="Struct bad_weekday">bad_weekday</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../greg_weekday.html" title="Class greg_weekday">greg_weekday</a>;
+
+    <span class="bold"><strong>typedef</strong></span> CV::simple_exception_policy&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>, 0, 6, <a href="../bad_weekday.html" title="Struct bad_weekday">bad_weekday</a> &gt; greg_weekday_policies;
+    <span class="bold"><strong>typedef</strong></span> CV::constrained_value&lt; greg_weekday_policies &gt; greg_weekday_rep;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id866121"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_year.hpp" target="_top">boost/date_time/gregorian/greg_year.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_year.html" title="Struct bad_year">bad_year</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../greg_year.html" title="Class greg_year">greg_year</a>;
+
+    <span class="bold"><strong>typedef</strong></span> CV::simple_exception_policy&lt; <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>, 1400, 10000, <a href="../bad_year.html" title="Struct bad_year">bad_year</a> &gt; greg_year_policies; <span class="emphasis"><em>// Policy class that declares error handling gregorian year type. </em></span>
+    <span class="bold"><strong>typedef</strong></span> CV::constrained_value&lt; greg_year_policies &gt; greg_year_rep; <span class="emphasis"><em>// Generated representation for gregorian year. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id904088"></a>Header &lt;<a href="../../../boost/date_time/gregorian/greg_ymd.hpp" target="_top">boost/date_time/gregorian/greg_ymd.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>typedef</strong></span> date_time::year_month_day_base&lt; <a href="../greg_year.html" title="Class greg_year">greg_year</a>, <a href="../greg_month.html" title="Class greg_month">greg_month</a>, <a href="../greg_day.html" title="Class greg_day">greg_day</a> &gt; greg_year_month_day;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id897107"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian.hpp" target="_top">boost/date_time/gregorian/gregorian.hpp</a>&gt;</h5></div></div></div>
+<p>Single file header that provides overall include for all elements of the gregorian date-time system. This includes the various types defined, but also other functions for formatting and parsing.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id930248"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian_io.hpp" target="_top">boost/date_time/gregorian/gregorian_io.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::period_formatter&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; wperiod_formatter;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::period_formatter&lt; <span class="bold"><strong>char</strong></span> &gt; period_formatter;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::date_facet&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wdate_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::date_facet&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>char</strong></span> &gt; date_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::period_parser&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>char</strong></span> &gt; period_parser;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::period_parser&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wperiod_parser;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::special_values_formatter&lt; <span class="bold"><strong>char</strong></span> &gt; special_values_formatter;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::special_values_formatter&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; wspecial_values_formatter;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::special_values_parser&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>char</strong></span> &gt; special_values_parser;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::special_values_parser&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wspecial_values_parser;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::date_input_facet&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>char</strong></span> &gt; date_input_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::date_input_facet&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wdate_input_facet;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id1104957"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> <a href="../boost/gregorian/date.html" title="Class date">boost::gregorian::date</a> &amp; d);
+
+    <span class="emphasis"><em>// input operator for date </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id973558"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../boost/gregorian/date.html" title="Class date">date</a> &amp; d);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id977996"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::date_duration &amp; dd);
+
+    <span class="emphasis"><em>// input operator for date_duration </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id934668"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, date_duration &amp; dd);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id836689"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::date_period &amp; dp);
+
+    <span class="emphasis"><em>// input operator for date_period </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id892965"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, date_period &amp; dp);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id961919"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> <a href="../greg_month.html" title="Class greg_month">boost::gregorian::greg_month</a> &amp; gm);
+
+    <span class="emphasis"><em>// input operator for greg_month </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id661001"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../greg_month.html" title="Class greg_month">greg_month</a> &amp; m);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id969716"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> <a href="../greg_weekday.html" title="Class greg_weekday">boost::gregorian::greg_weekday</a> &amp; gw);
+
+    <span class="emphasis"><em>// input operator for greg_weekday </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id800831"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../greg_weekday.html" title="Class greg_weekday">greg_weekday</a> &amp; wd);
+
+    <span class="emphasis"><em>// input operator for greg_day </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id1080709"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../greg_day.html" title="Class greg_day">greg_day</a> &amp; gd);
+
+    <span class="emphasis"><em>// input operator for greg_year </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id795259"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../greg_year.html" title="Class greg_year">greg_year</a> &amp; gy);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id1042160"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::partial_date &amp; pd);
+
+    <span class="emphasis"><em>// input operator for partial_date </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id896116"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, partial_date &amp; pd);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id872956"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::nth_day_of_the_week_in_month &amp; nkd);
+
+    <span class="emphasis"><em>// input operator for nth_day_of_the_week_in_month </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id966344"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 nth_day_of_the_week_in_month &amp; nday);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id823594"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::first_day_of_the_week_in_month &amp; fkd);
+
+    <span class="emphasis"><em>// input operator for first_day_of_the_week_in_month </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id1035916"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 first_day_of_the_week_in_month &amp; fkd);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id898747"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::last_day_of_the_week_in_month &amp; lkd);
+
+    <span class="emphasis"><em>// input operator for last_day_of_the_week_in_month </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id1074761"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 last_day_of_the_week_in_month &amp; lkd);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id862472"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::first_day_of_the_week_after &amp; fda);
+
+    <span class="emphasis"><em>// input operator for first_day_of_the_week_after </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id859280"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 first_day_of_the_week_after &amp; fka);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id926433"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::gregorian::first_day_of_the_week_before &amp; fdb);
+
+    <span class="emphasis"><em>// input operator for first_day_of_the_week_before </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id1031248"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 first_day_of_the_week_before &amp; fkb);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id975184"></a>Header &lt;<a href="../../../boost/date_time/gregorian/gregorian_types.hpp" target="_top">boost/date_time/gregorian/gregorian_types.hpp</a>&gt;</h5></div></div></div>
+<p>Single file header that defines most of the types for the gregorian date-time system.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="bold"><strong>typedef</strong></span> date_time::period&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a>, date_duration &gt; date_period; <span class="emphasis"><em>// Date periods for the gregorian system. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::year_based_generator&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; year_based_generator; <span class="emphasis"><em>// A unifying date_generator base type. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::partial_date&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; partial_date; <span class="emphasis"><em>// A date generation object type. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::nth_kday_of_month&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; nth_kday_of_month;
+    <span class="bold"><strong>typedef</strong></span> nth_kday_of_month nth_day_of_the_week_in_month;
+    <span class="bold"><strong>typedef</strong></span> date_time::first_kday_of_month&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; first_kday_of_month;
+    <span class="bold"><strong>typedef</strong></span> first_kday_of_month first_day_of_the_week_in_month;
+    <span class="bold"><strong>typedef</strong></span> date_time::last_kday_of_month&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; last_kday_of_month;
+    <span class="bold"><strong>typedef</strong></span> last_kday_of_month last_day_of_the_week_in_month;
+    <span class="bold"><strong>typedef</strong></span> date_time::first_kday_after&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; first_kday_after;
+    <span class="bold"><strong>typedef</strong></span> first_kday_after first_day_of_the_week_after;
+    <span class="bold"><strong>typedef</strong></span> date_time::first_kday_before&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; first_kday_before;
+    <span class="bold"><strong>typedef</strong></span> first_kday_before first_day_of_the_week_before;
+    <span class="bold"><strong>typedef</strong></span> date_time::day_clock&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; day_clock; <span class="emphasis"><em>// A clock to get the current day from the local computer. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_itr_base&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; date_iterator; <span class="emphasis"><em>// Base date_iterator type for gregorian types. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_itr&lt; date_time::day_functor&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt;, <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; day_iterator; <span class="emphasis"><em>// A day level iterator. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_itr&lt; date_time::week_functor&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt;, <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; week_iterator; <span class="emphasis"><em>// A week level iterator. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_itr&lt; date_time::month_functor&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt;, <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; month_iterator; <span class="emphasis"><em>// A month level iterator. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::date_itr&lt; date_time::year_functor&lt; <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt;, <a href="../boost/gregorian/date.html" title="Class date">date</a> &gt; year_iterator; <span class="emphasis"><em>// A year level iterator. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id908439"></a>Header &lt;<a href="../../../boost/date_time/gregorian/parsers.hpp" target="_top">boost/date_time/gregorian/parsers.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> gregorian {
+    <span class="type">special_values</span> <a href="../special_value_from_string.html" title="Function special_value_from_string">special_value_from_string</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+    <span class="emphasis"><em>// Deprecated: Use from_simple_string. </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_string"></a>from_string(std::string s);
+
+    <span class="emphasis"><em>// From delimited date string where with order year-month-day eg: 2002-1-25 or 2003-Jan-25 (full month name is also accepted). </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_simple_string"></a>from_simple_string(std::string s);
+
+    <span class="emphasis"><em>// From delimited date string where with order year-month-day eg: 1-25-2003 or Jan-25-2003 (full month name is also accepted). </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_us_string"></a>from_us_string(std::string s);
+
+    <span class="emphasis"><em>// From delimited date string where with order day-month-year eg: 25-1-2002 or 25-Jan-2003 (full month name is also accepted). </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_uk_string"></a>from_uk_string(std::string s);
+
+    <span class="emphasis"><em>// From iso type date string where with order year-month-day eg: 20020125. </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_undelimited_string"></a>from_undelimited_string(std::string s);
+
+    <span class="emphasis"><em>// From iso type date string where with order year-month-day eg: 20020125. </em></span>
+    <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="date_from_iso_string"></a>date_from_iso_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);
+
+    <span class="emphasis"><em>// Stream should hold a date in the form of: 2002-1-25. Month number, abbrev, or name are accepted. </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> iterator_type&gt;
+      <span class="type"><a href="../boost/gregorian/date.html" title="Class date">date</a></span> <a name="from_stream"></a>from_stream(iterator_type beg, iterator_type end);
+
+    <span class="emphasis"><em>// Function to parse a date_period from a string (eg: [2003-Oct-31/2003-Dec-25]). </em></span>
+    <span class="type">date_period</span> <a name="date_period_from_string"></a>date_period_from_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);
+
+    <span class="emphasis"><em>// Function to parse a date_period from a wstring (eg: [2003-Oct-31/2003-Dec-25]). </em></span>
+    <span class="type">date_period</span> <a name="date_period_from_wstring"></a>date_period_from_wstring(<span class="bold"><strong>const</strong></span> std::wstring &amp; s);
+  }
+}</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="posix_time_reference"></a>Posix Time Reference</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#id974552">Header &lt;boost/date_time/posix_time/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id798666">Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id861945">Header &lt;boost/date_time/posix_time/posix_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id937109">Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id975624">Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id798842">Header &lt;boost/date_time/posix_time/posix_time_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1040233">Header &lt;boost/date_time/posix_time/posix_time_legacy_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id832627">Header &lt;boost/date_time/posix_time/posix_time_system.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id976935">Header &lt;boost/date_time/posix_time/posix_time_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id861076">Header &lt;boost/date_time/posix_time/ptime.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1034740">Header &lt;boost/date_time/posix_time/time_formatters.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id871502">Header &lt;boost/date_time/posix_time/time_formatters_limited.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id931047">Header &lt;boost/date_time/posix_time/time_parsers.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id926936">Header &lt;boost/date_time/posix_time/time_period.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id974552"></a>Header &lt;<a href="../../../boost/date_time/posix_time/conversion.hpp" target="_top">boost/date_time/posix_time/conversion.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+
+    <span class="emphasis"><em>// Function that converts a time_t into a ptime. </em></span>
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a name="from_time_t"></a>from_time_t(std::time_t t);
+
+    <span class="emphasis"><em>// Convert a time to a tm structure truncating any fractional seconds. </em></span>
+    <span class="type">tm</span> <a name="id868690"></a>to_tm(<span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">boost::posix_time::ptime</a> &amp; t);
+
+    <span class="emphasis"><em>// Convert a time_duration to a tm structure truncating any fractional seconds and zeroing fields for date components. </em></span>
+    <span class="type">tm</span> <a name="id838280"></a>to_tm(<span class="bold"><strong>const</strong></span> <a href="../id937125.html" title="Class time_duration">boost::posix_time::time_duration</a> &amp; td);
+
+    <span class="emphasis"><em>// Convert a tm struct to a ptime ignoring is_dst flag. </em></span>
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a name="ptime_from_tm"></a>ptime_from_tm(<span class="bold"><strong>const</strong></span> tm &amp; timetm);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="type">time_type</span> <a href="../from_ftime.html" title="Function template from_ftime">from_ftime</a>(<span class="bold"><strong>const</strong></span> FILETIME &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id798666"></a>Header &lt;<a href="../../../boost/date_time/posix_time/date_duration_operators.hpp" target="_top">boost/date_time/posix_time/date_duration_operators.hpp</a>&gt;</h5></div></div></div>
+<p>Operators for ptime and optional gregorian types. Operators use snap-to-end-of-month behavior. Further details on this behavior can be found in reference for date_time/date_duration_types.hpp and documentation for month and year iterators.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id1111919.html" title="Function operator+"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id660313.html" title="Function operator+="><span class="bold"><strong>operator</strong></span>+=</a>(<a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id1000125.html" title="Function operator-"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id802530.html" title="Function operator-="><span class="bold"><strong>operator</strong></span>-=</a>(<a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id934351.html" title="Function operator+"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id974669.html" title="Function operator+="><span class="bold"><strong>operator</strong></span>+=</a>(<a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id967018.html" title="Function operator-"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a href="../id901063.html" title="Function operator-="><span class="bold"><strong>operator</strong></span>-=</a>(<a href="../ptime.html" title="Class ptime">ptime</a> &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id861945"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time.hpp" target="_top">boost/date_time/posix_time/posix_time.hpp</a>&gt;</h5></div></div></div>
+<p>Global header file to get all of posix time types</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id937109"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_config.hpp" target="_top">boost/date_time/posix_time/posix_time_config.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>class</strong></span> <a href="../id937125.html" title="Class time_duration">time_duration</a>;
+
+    <span class="bold"><strong>struct</strong></span> <a href="../simple_time_rep.html" title="Struct simple_time_rep">simple_time_rep</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../posix_time_system_config.html" title="Class posix_time_system_config">posix_time_system_config</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../id974575.html" title="Class millisec_posix_time_system_config">millisec_posix_time_system_config</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::time_resolution_traits&lt; boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::nano, 1000000000, 9 &gt; time_res_traits;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id975624"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_duration.hpp" target="_top">boost/date_time/posix_time/posix_time_duration.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>class</strong></span> <a href="../hours.html" title="Class hours">hours</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../minutes.html" title="Class minutes">minutes</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../seconds.html" title="Class seconds">seconds</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000 &gt; millisec; <span class="emphasis"><em>// Allows expression of durations as milli seconds. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000 &gt; milliseconds;
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000000 &gt; microsec; <span class="emphasis"><em>// Allows expression of durations as micro seconds. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000000 &gt; microseconds;
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000000000 &gt; nanosec; <span class="emphasis"><em>// Allows expression of durations as nano seconds. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::subsecond_duration&lt; <a href="../id937125.html" title="Class time_duration">time_duration</a>, 1000000000 &gt; nanoseconds;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id798842"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_io.hpp" target="_top">boost/date_time/posix_time/posix_time_io.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_facet&lt; <a href="../ptime.html" title="Class ptime">ptime</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wtime_facet; <span class="emphasis"><em>// ptime_input_facet is depricated and will be phased out. use time_input_facet instead </em></span>
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_facet&lt; <a href="../ptime.html" title="Class ptime">ptime</a>, <span class="bold"><strong>char</strong></span> &gt; time_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_input_facet&lt; <a href="../ptime.html" title="Class ptime">ptime</a>, <span class="bold"><strong>wchar_t</strong></span> &gt; wtime_input_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_input_facet&lt; <a href="../ptime.html" title="Class ptime">ptime</a>, <span class="bold"><strong>char</strong></span> &gt; time_input_facet;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id997259"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os, <span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp; p);
+
+    <span class="emphasis"><em>// input operator for ptime </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id871198"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../ptime.html" title="Class ptime">ptime</a> &amp; pt);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id871703"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> boost::posix_time::time_period &amp; p);
+
+    <span class="emphasis"><em>// input operator for time_period </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id1037843"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, time_period &amp; tp);
+
+    <span class="emphasis"><em>// ostream operator for posix_time::time_duration </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_ostream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id962212"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, Traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> <a href="../id937125.html" title="Class time_duration">time_duration</a> &amp; td);
+
+    <span class="emphasis"><em>// input operator for time_duration </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id859659"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is, <a href="../id937125.html" title="Class time_duration">time_duration</a> &amp; td);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1040233"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_legacy_io.hpp" target="_top">boost/date_time/posix_time/posix_time_legacy_io.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+
+    <span class="emphasis"><em>// ostream operator for posix_time::time_duration </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id902417"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> <a href="../id937125.html" title="Class time_duration">time_duration</a> &amp; td);
+
+    <span class="emphasis"><em>// ostream operator for posix_time::ptime </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id868639"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <span class="bold"><strong>const</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a> &amp; t);
+
+    <span class="emphasis"><em>// ostream operator for posix_time::time_period </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+      <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+      <a name="id930798"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> time_period &amp; tp);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id895713"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <a href="../id937125.html" title="Class time_duration">time_duration</a> &amp; td);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a name="id895757"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <a href="../ptime.html" title="Class ptime">ptime</a> &amp; pt);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+      <a href="../id905079.html" title="Function template operator&gt;&gt;"><span class="bold"><strong>operator</strong></span>&gt;&gt;</a>(std::basic_istream&lt; charT &gt; &amp;, time_period &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id832627"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_system.hpp" target="_top">boost/date_time/posix_time/posix_time_system.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>typedef</strong></span> date_time::split_timedate_system&lt; posix_time_system_config, 1000000000 &gt; posix_time_system;
+    <span class="bold"><strong>typedef</strong></span> date_time::counted_time_rep&lt; millisec_posix_time_system_config &gt; int64_time_rep;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id976935"></a>Header &lt;<a href="../../../boost/date_time/posix_time/posix_time_types.hpp" target="_top">boost/date_time/posix_time/posix_time_types.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>typedef</strong></span> date_time::time_itr&lt; <a href="../ptime.html" title="Class ptime">ptime</a> &gt; time_iterator; <span class="emphasis"><em>// Iterator over a defined time duration. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::second_clock&lt; <a href="../ptime.html" title="Class ptime">ptime</a> &gt; second_clock; <span class="emphasis"><em>// A time clock that has a resolution of one second. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::microsec_clock&lt; <a href="../ptime.html" title="Class ptime">ptime</a> &gt; microsec_clock; <span class="emphasis"><em>// A time clock that has a resolution of one microsecond. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::null_dst_rules&lt; ptime::date_type, <a href="../id937125.html" title="Class time_duration">time_duration</a> &gt; no_dst; <span class="emphasis"><em>// Define a dst null dst rule for the posix_time system. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::us_dst_rules&lt; ptime::date_type, <a href="../id937125.html" title="Class time_duration">time_duration</a> &gt; us_dst; <span class="emphasis"><em>// Define US dst rule calculator for the posix_time system. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id861076"></a>Header &lt;<a href="../../../boost/date_time/posix_time/ptime.hpp" target="_top">boost/date_time/posix_time/ptime.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>class</strong></span> <a href="../ptime.html" title="Class ptime">ptime</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1034740"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_formatters.hpp" target="_top">boost/date_time/posix_time/time_formatters.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id799896"></a>to_simple_string_type(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id866089"></a>to_iso_string_type(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+
+    <span class="emphasis"><em>// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id1041863"></a>to_simple_string_type(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id828195"></a>to_simple_string_type(time_period tp);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id828226"></a>to_iso_string_type(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">std::basic_string&lt; charT &gt;</span> <a name="id1071852"></a>to_iso_extended_string_type(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+
+    <span class="emphasis"><em>// Time duration to wstring -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </em></span>
+    <span class="type">std::wstring</span> <a name="id795396"></a>to_simple_wstring(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+
+    <span class="emphasis"><em>// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </em></span>
+    <span class="type">std::wstring</span> <a name="id900891"></a>to_iso_wstring(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+    <span class="type">std::wstring</span> <a name="id929080"></a>to_simple_wstring(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+
+    <span class="emphasis"><em>// Convert to wstring of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </em></span>
+    <span class="type">std::wstring</span> <a name="id929105"></a>to_simple_wstring(time_period tp);
+
+    <span class="emphasis"><em>// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </em></span>
+    <span class="type">std::wstring</span> <a name="id900554"></a>to_iso_wstring(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+
+    <span class="emphasis"><em>// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </em></span>
+    <span class="type">std::wstring</span> <a name="id1113584"></a>to_iso_extended_wstring(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id871502"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_formatters_limited.hpp" target="_top">boost/date_time/posix_time/time_formatters_limited.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+
+    <span class="emphasis"><em>// Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </em></span>
+    <span class="type">std::string</span> <a name="id871518"></a>to_simple_string(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+
+    <span class="emphasis"><em>// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </em></span>
+    <span class="type">std::string</span> <a name="id871929"></a>to_iso_string(<a href="../id937125.html" title="Class time_duration">time_duration</a> td);
+
+    <span class="emphasis"><em>// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </em></span>
+    <span class="type">std::string</span> <a name="id799039"></a>to_simple_string(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+
+    <span class="emphasis"><em>// Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </em></span>
+    <span class="type">std::string</span> <a name="id1076370"></a>to_simple_string(time_period tp);
+
+    <span class="emphasis"><em>// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </em></span>
+    <span class="type">std::string</span> <a name="id939831"></a>to_iso_string(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+
+    <span class="emphasis"><em>// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </em></span>
+    <span class="type">std::string</span> <a name="id795129"></a>to_iso_extended_string(<a href="../ptime.html" title="Class ptime">ptime</a> t);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id931047"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_parsers.hpp" target="_top">boost/date_time/posix_time/time_parsers.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="type"><a href="../id937125.html" title="Class time_duration">time_duration</a></span> <a href="../duration_from_string.html" title="Function duration_from_string">duration_from_string</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a name="time_from_string"></a>time_from_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);
+    <span class="type"><a href="../ptime.html" title="Class ptime">ptime</a></span> <a name="from_iso_string"></a>from_iso_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id926936"></a>Header &lt;<a href="../../../boost/date_time/posix_time/time_period.hpp" target="_top">boost/date_time/posix_time/time_period.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> posix_time {
+    <span class="bold"><strong>typedef</strong></span> date_time::period&lt; <a href="../ptime.html" title="Class ptime">ptime</a>, <a href="../id937125.html" title="Class time_duration">time_duration</a> &gt; time_period; <span class="emphasis"><em>// Time period type. </em></span>
+  }
+}</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="local_time_reference"></a>Local Time Reference</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="doxy.html#id896141">Header &lt;boost/date_time/local_time/conversion.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id800906">Header &lt;boost/date_time/local_time/custom_time_zone.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1031665">Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id962272">Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1106303">Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1107717">Header &lt;boost/date_time/local_time/local_time_io.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1074198">Header &lt;boost/date_time/local_time/local_time_serialize.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id856507">Header &lt;boost/date_time/local_time/local_time_types.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id928390">Header &lt;boost/date_time/local_time/posix_time_zone.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id1045002">Header &lt;boost/date_time/local_time/time_zone.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="doxy.html#id935264">Header &lt;boost/date_time/local_time/tz_database.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id896141"></a>Header &lt;<a href="../../../boost/date_time/local_time/conversion.hpp" target="_top">boost/date_time/local_time/conversion.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+
+    <span class="emphasis"><em>// Function that creates a tm struct from a local_date_time. </em></span>
+    <span class="type">tm</span> <a name="id1107664"></a>to_tm(<span class="bold"><strong>const</strong></span> local_date_time &amp; lt);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id800906"></a>Header &lt;<a href="../../../boost/date_time/local_time/custom_time_zone.hpp" target="_top">boost/date_time/local_time/custom_time_zone.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>class</strong></span> <a href="../custom_time_zone.html" title="Class custom_time_zone">custom_time_zone</a>;
+
+    <span class="bold"><strong>typedef</strong></span> boost::shared_ptr&lt; dst_calc_rule &gt; dst_calc_rule_ptr;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1031665"></a>Header &lt;<a href="../../../boost/date_time/local_time/date_duration_operators.hpp" target="_top">boost/date_time/local_time/date_duration_operators.hpp</a>&gt;</h5></div></div></div>
+<p>Operators for local_date_time and optional gregorian types. Operators use snap-to-end-of-month behavior. Further details on this behavior can be found in reference for date_time/date_duration_types.hpp and documentation for month and year iterators.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="type">local_date_time</span>
+    <a href="../id858004.html" title="Function operator+"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id1038994.html" title="Function operator+="><span class="bold"><strong>operator</strong></span>+=</a>(local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id795566.html" title="Function operator-"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id681933.html" title="Function operator-="><span class="bold"><strong>operator</strong></span>-=</a>(local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id967615.html" title="Function operator+"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id964834.html" title="Function operator+="><span class="bold"><strong>operator</strong></span>+=</a>(local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id1076157.html" title="Function operator-"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+    <span class="type">local_date_time</span>
+    <a href="../id1112796.html" title="Function operator-="><span class="bold"><strong>operator</strong></span>-=</a>(local_date_time &amp;, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id962272"></a>Header &lt;<a href="../../../boost/date_time/local_time/dst_transition_day_rules.hpp" target="_top">boost/date_time/local_time/dst_transition_day_rules.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../partial_date_rule_spec.html" title="Struct partial_date_rule_spec">partial_date_rule_spec</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../first_last_rule_spec.html" title="Struct first_last_rule_spec">first_last_rule_spec</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../last_last_rule_spec.html" title="Struct last_last_rule_spec">last_last_rule_spec</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../nth_last_rule_spec.html" title="Struct nth_last_rule_spec">nth_last_rule_spec</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">nth_kday_rule_spec</a>;
+
+    <span class="bold"><strong>typedef</strong></span> date_time::dst_day_calc_rule&lt; gregorian::date &gt; dst_calc_rule; <span class="emphasis"><em>// Provides rule of the form starting Apr 30 ending Oct 21. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; partial_date_rule_spec &gt; partial_date_dst_rule; <span class="emphasis"><em>// Provides rule of the form first Sunday in April, last Saturday in Oct. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; first_last_rule_spec &gt; first_last_dst_rule; <span class="emphasis"><em>// Provides rule of the form first Sunday in April, last Saturday in Oct. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; last_last_rule_spec &gt; last_last_dst_rule; <span class="emphasis"><em>// Provides rule of the form last Sunday in April, last Saturday in Oct. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; nth_last_rule_spec &gt; nth_last_dst_rule; <span class="emphasis"><em>// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April, last Sunday in Oct. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; nth_kday_rule_spec &gt; nth_kday_dst_rule; <span class="emphasis"><em>// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </em></span>
+    <span class="bold"><strong>typedef</strong></span> date_time::day_calc_dst_rule&lt; nth_kday_rule_spec &gt; nth_day_of_the_week_in_month_dst_rule; <span class="emphasis"><em>// Provides rule in form of [1st|2nd|3rd|4th] Sunday in April/October. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1106303"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_date_time.hpp" target="_top">boost/date_time/local_time/local_date_time.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../ambiguous_result.html" title="Struct ambiguous_result">ambiguous_result</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../time_label_invalid.html" title="Struct time_label_invalid">time_label_invalid</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../dst_not_valid.html" title="Struct dst_not_valid">dst_not_valid</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> utc_time_ = posix_time::ptime,
+             <span class="bold"><strong>typename</strong></span> tz_type = date_time::time_zone_base&lt;utc_time_&gt; &gt;
+     <span class="bold"><strong>class</strong></span> <a href="../local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a>;
+
+    <span class="bold"><strong>typedef</strong></span> <a href="../local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> local_date_time; <span class="emphasis"><em>// Use the default parameters to define local_date_time. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1107717"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_time_io.hpp" target="_top">boost/date_time/local_time/local_time_io.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_facet&lt; local_date_time, <span class="bold"><strong>wchar_t</strong></span> &gt; wlocal_time_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_facet&lt; local_date_time, <span class="bold"><strong>char</strong></span> &gt; local_time_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_input_facet&lt; local_date_time::utc_time_type, <span class="bold"><strong>wchar_t</strong></span> &gt; wlocal_time_input_facet;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_input_facet&lt; local_date_time::utc_time_type, <span class="bold"><strong>char</strong></span> &gt; local_time_input_facet;
+
+    <span class="emphasis"><em>// operator&lt;&lt; for local_date_time - see local_time docs for formatting details </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT&gt;
+      <span class="type">std::basic_ostream&lt; CharT, TraitsT &gt; &amp;</span>
+      <a name="id797082"></a><span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, TraitsT &gt; &amp; os,
+                 <span class="bold"><strong>const</strong></span> local_date_time &amp; ldt);
+
+    <span class="emphasis"><em>// input operator for local_date_time </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a name="id800372"></a><span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; is,
+                 local_date_time &amp; ldt);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1074198"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_time_serialize.hpp" target="_top">boost/date_time/local_time/local_time_serialize.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> serialization {
+    <span class="type"></span> <a name="id1074214"></a>BOOST_SERIALIZATION_SPLIT_FREE(boost::date_time::time_zone_base );
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id856507"></a>Header &lt;<a href="../../../boost/date_time/local_time/local_time_types.hpp" target="_top">boost/date_time/local_time/local_time_types.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::period&lt; local_date_time, boost::posix_time::time_duration &gt; local_time_period;
+    <span class="bold"><strong>typedef</strong></span> date_time::time_itr&lt; local_date_time &gt; local_time_iterator;
+    <span class="bold"><strong>typedef</strong></span> date_time::second_clock&lt; local_date_time &gt; local_sec_clock;
+    <span class="bold"><strong>typedef</strong></span> date_time::microsec_clock&lt; local_date_time &gt; local_microsec_clock;
+    <span class="bold"><strong>typedef</strong></span> boost::shared_ptr&lt; <a href="../time_zone.html" title="Class time_zone">time_zone</a> &gt; time_zone_ptr; <span class="emphasis"><em>// Shared Pointer for time_zone and posix_time_zone objects. </em></span>
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id928390"></a>Header &lt;<a href="../../../boost/date_time/local_time/posix_time_zone.hpp" target="_top">boost/date_time/local_time/posix_time_zone.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_offset.html" title="Struct bad_offset">bad_offset</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../bad_adjustment.html" title="Struct bad_adjustment">bad_adjustment</a>;
+
+    <span class="bold"><strong>class</strong></span> <a href="../posix_time_zone.html" title="Class posix_time_zone">posix_time_zone</a>;
+
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_zone_names time_zone_names;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::dst_adjustment_offsets&lt; boost::posix_time::time_duration &gt; dst_adjustment_offsets;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_zone_base&lt; boost::posix_time::ptime &gt; time_zone;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1045002"></a>Header &lt;<a href="../../../boost/date_time/local_time/time_zone.hpp" target="_top">boost/date_time/local_time/time_zone.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>class</strong></span> <a href="../time_zone.html" title="Class time_zone">time_zone</a>;
+
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_zone_names time_zone_names;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::dst_adjustment_offsets&lt; boost::posix_time::time_duration &gt; dst_adjustment_offsets;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_zone_base&lt; boost::posix_time::ptime &gt; time_zone;
+    <span class="bold"><strong>typedef</strong></span> boost::shared_ptr&lt; dst_calc_rule &gt; dst_calc_rule_ptr;
+    <span class="bold"><strong>typedef</strong></span> boost::date_time::time_zone_base&lt; boost::posix_time::ptime &gt; time_zone_base;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id935264"></a>Header &lt;<a href="../../../boost/date_time/local_time/tz_database.hpp" target="_top">boost/date_time/local_time/tz_database.hpp</a>&gt;</h5></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> local_time {
+    <span class="bold"><strong>typedef</strong></span> date_time::tz_db_base&lt; <a href="../custom_time_zone.html" title="Class custom_time_zone">custom_time_zone</a>, nth_kday_dst_rule &gt; tz_database; <span class="emphasis"><em>// Object populated with boost::shared_ptr&lt;time_zone_base&gt; objects. </em></span>
+  }
+}</pre>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></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="../date_time.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="../day_functor.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/examples.html b/doc/html/date_time/examples.html
new file mode 100644
index 0000000000..3f02f32680
--- /dev/null
+++ b/doc/html/date_time/examples.html
@@ -0,0 +1,1125 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Examples</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="details.html" title="Details">
+<link rel="next" href="doxy.html" title="Library Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="details.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="doxy.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="date_time.examples"></a>Examples</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="examples.html#date_time.examples.dates_as_strings">Dates as Strings</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.days_alive">Days Alive</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.days_between_new_year">Days Between New Years</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.end_of_month_day">Last Day of the Months</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.localization">Localization Demonstration</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.date_period_calc">Date Period Calculations</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_holidays">Print Holidays</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_month">Print Month</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.month_add">Month Adding</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.time_math">Time Math</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.print_hours">Print Hours</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.local_utc_conversion">Local to UTC Conversion</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.time_periods">Time Periods</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.simple_time_zone">Simple Time Zones</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.calc_rules">Daylight Savings Calc Rules</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.flight">Flight Time Example</a></span></dt>
+<dt><span class="section"><a href="examples.html#date_time.examples.seconds_since_epoch">Seconds Since Epoch</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.dates_as_strings"></a>Dates as Strings</h4></div></div></div>
+<p>
+ Various parsing and output of strings.
+ </p>
+<pre class="programlisting">
+
+ /* The following is a simple example that shows conversion of dates
+ * to and from a std::string.
+ *
+ * Expected output:
+ * 2001-Oct-09
+ * 2001-10-09
+ * Tuesday October 9, 2001
+ * An expected exception is next:
+ * Exception: Month number is out of range 1..12
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+ #include &lt;string&gt;
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ try {
+ // The following date is in ISO 8601 extended format (CCYY-MM-DD)
+ std::string s("2001-10-9"); //2001-October-09
+ date d(from_simple_string(s));
+ std::cout &lt;&lt; to_simple_string(d) &lt;&lt; std::endl;
+
+ //Read ISO Standard(CCYYMMDD) and output ISO Extended
+ std::string ud("20011009"); //2001-Oct-09
+ date d1(from_undelimited_string(ud));
+ std::cout &lt;&lt; to_iso_extended_string(d1) &lt;&lt; std::endl;
+
+ //Output the parts of the date - Tuesday October 9, 2001
+ date::ymd_type ymd = d1.year_month_day();
+ greg_weekday wd = d1.day_of_week();
+ std::cout &lt;&lt; wd.as_long_string() &lt;&lt; " "
+ &lt;&lt; ymd.month.as_long_string() &lt;&lt; " "
+ &lt;&lt; ymd.day &lt;&lt; ", " &lt;&lt; ymd.year
+ &lt;&lt; std::endl;
+
+ //Let's send in month 25 by accident and create an exception
+ std::string bad_date("20012509"); //2001-??-09
+ std::cout &lt;&lt; "An expected exception is next: " &lt;&lt; std::endl;
+ date wont_construct(from_undelimited_string(bad_date));
+ //use wont_construct so compiler doesn't complain, but you wont get here!
+ std::cout &lt;&lt; "oh oh, you shouldn't reach this line: "
+ &lt;&lt; to_iso_string(wont_construct) &lt;&lt; std::endl;
+ }
+ catch(std::exception&amp; e) {
+ std::cout &lt;&lt; " Exception: " &lt;&lt; e.what() &lt;&lt; std::endl;
+ }
+
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.days_alive"></a>Days Alive</h4></div></div></div>
+<p>
+ Calculate the number of days you have been living using durations and dates.
+ </p>
+<pre class="programlisting"><code class="literal"><span class="comment">/* Short example that calculates the number of days since user was born.
+ * Demonstrates comparisons of durations, use of the day_clock,
+ * and parsing a date from a string.
+ */</span><span class="preprocessor">
+
+#include</span><span class="string"> "boost/date_time/gregorian/gregorian.hpp"</span><span class="preprocessor">
+#include</span><span class="special"> &lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span><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">gregorian</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">string</span><span class="identifier"> s</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"> "Enter birth day YYYY-MM-DD (eg: 2002-02-01): "</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">cin</span><span class="special"> &gt;&gt;</span><span class="identifier"> s</span><span class="special">;</span><span class="keyword">
+ try</span><span class="special"> {</span><span class="identifier">
+ date</span><span class="identifier"> birthday</span><span class="special">(</span><span class="identifier">from_simple_string</span><span class="special">(</span><span class="identifier">s</span><span class="special">));</span><span class="identifier">
+ date</span><span class="identifier"> today</span><span class="special"> =</span><span class="identifier"> day_clock</span><span class="special">::</span><span class="identifier">local_day</span><span class="special">();</span><span class="identifier">
+ days</span><span class="identifier"> days_alive</span><span class="special"> =</span><span class="identifier"> today</span><span class="special"> -</span><span class="identifier"> birthday</span><span class="special">;</span><span class="identifier">
+ days</span><span class="identifier"> one_day</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><span class="keyword">
+ if</span><span class="special"> (</span><span class="identifier">days_alive</span><span class="special"> ==</span><span class="identifier"> one_day</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"> "Born yesterday, very funny"</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><span class="keyword">
+ else</span><span class="keyword"> if</span><span class="special"> (</span><span class="identifier">days_alive</span><span class="special"> &lt;</span><span class="identifier"> days</span><span class="special">(</span><span class="number">0</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"> "Not born yet, hmm: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> days_alive</span><span class="special">.</span><span class="identifier">days</span><span class="special">()</span><span class="special">
+ &lt;&lt;</span><span class="string"> " days"</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><span class="keyword">
+ else</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"> "Days alive: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> days_alive</span><span class="special">.</span><span class="identifier">days</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><span class="special">
+
+ }</span><span class="keyword">
+ catch</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"> "Bad date entered: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> s</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><span class="keyword">
+ return</span><span class="number"> 0</span><span class="special">;</span><span class="special">
+}</span></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.days_between_new_year"></a>Days Between New Years</h4></div></div></div>
+<p>
+ Calculate the number of days till new years
+ </p>
+<pre class="programlisting">
+ /* Provides a simple example of using a date_generator, and simple
+ * mathematical operatorations, to calculate the days since
+ * New Years day of this year, and days until next New Years day.
+ *
+ * Expected results:
+ * Adding together both durations will produce 366 (365 in a leap year).
+ */
+ #include &lt;iostream&gt;
+ #include "boost/date_time/gregorian/gregorian.hpp"
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ date today = day_clock::local_day();
+ partial_date new_years_day(1,Jan);
+ //Subtract two dates to get a duration
+ days days_since_year_start = today - new_years_day.get_date(today.year());
+ std::cout &lt;&lt; "Days since Jan 1: " &lt;&lt; days_since_year_start.days()
+ &lt;&lt; std::endl;
+
+ days days_until_year_start = new_years_day.get_date(today.year()+1) - today;
+ std::cout &lt;&lt; "Days until next Jan 1: " &lt;&lt; days_until_year_start.days()
+ &lt;&lt; std::endl;
+ return 0;
+ };
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.end_of_month_day"></a>Last Day of the Months</h4></div></div></div>
+<p>
+ Example that gets a month and a year from the user and finds the last day of each remaining month of that year.
+ </p>
+<pre class="programlisting">
+ /* Simple program that finds the last day of the given month,
+ * then displays the last day of every month left in the given year.
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::gregorian;
+
+ greg_year year(1400);
+ greg_month month(1);
+
+ // get a month and a year from the user
+ try {
+ int y, m;
+ std::cout &lt;&lt; " Enter Year(ex: 2002): ";
+ std::cin &gt;&gt; y;
+ year = greg_year(y);
+ std::cout &lt;&lt; " Enter Month(1..12): ";
+ std::cin &gt;&gt; m;
+ month = greg_month(m);
+ }
+ catch(bad_year by) {
+ std::cout &lt;&lt; "Invalid Year Entered: " &lt;&lt; by.what() &lt;&lt; '\n'
+ &lt;&lt; "Using minimum values for month and year." &lt;&lt; std::endl;
+ }
+ catch(bad_month bm) {
+ std::cout &lt;&lt; "Invalid Month Entered" &lt;&lt; bm.what() &lt;&lt; '\n'
+ &lt;&lt; "Using minimum value for month. " &lt;&lt; std::endl;
+ }
+
+ date start_of_next_year(year+1, Jan, 1);
+ date d(year, month, 1);
+
+ // add another month to d until we enter the next year.
+ while (d &lt; start_of_next_year){
+ std::cout &lt;&lt; to_simple_string(d.end_of_month()) &lt;&lt; std::endl;
+ d += months(1);
+ }
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.localization"></a>Localization Demonstration</h4></div></div></div>
+<p>
+ The boost::date_time library provides the ability to create customized locale facets. Date ordering, language, seperators, and abbreviations can be customized.
+ </p>
+<pre class="programlisting">
+ /* The following shows the creation of a facet for the output of
+ * dates in German (please forgive me for any errors in my German --
+ * I'm not a native speaker).
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+ #include &lt;algorithm&gt;
+
+ /* Define a series of char arrays for short and long name strings
+ * to be associated with German date output (US names will be
+ * retrieved from the locale). */
+ const char* const de_short_month_names[] =
+ {
+ "Jan", "Feb", "Mar", "Apr", "Mai", "Jun",
+ "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", "NAM"
+ };
+ const char* const de_long_month_names[] =
+ {
+ "Januar", "Februar", "Marz", "April", "Mai",
+ "Juni", "Juli", "August", "September", "Oktober",
+ "November", "Dezember", "NichtDerMonat"
+ };
+ const char* const de_long_weekday_names[] =
+ {
+ "Sonntag", "Montag", "Dienstag", "Mittwoch",
+ "Donnerstag", "Freitag", "Samstag"
+ };
+ const char* const de_short_weekday_names[] =
+ {
+ "Son", "Mon", "Die","Mit", "Don", "Fre", "Sam"
+ };
+
+
+ int main()
+ {
+ using namespace boost::gregorian;
+
+ // create some gregorian objects to output
+ date d1(2002, Oct, 1);
+ greg_month m = d1.month();
+ greg_weekday wd = d1.day_of_week();
+
+ // create a facet and a locale for German dates
+ date_facet* german_facet = new date_facet();
+ std::cout.imbue(std::locale(std::locale::classic(), german_facet));
+
+ // create the German name collections
+ date_facet::input_collection_type short_months, long_months,
+ short_weekdays, long_weekdays;
+ std::copy(&amp;de_short_month_names[0], &amp;de_short_month_names[11],
+ std::back_inserter(short_months));
+ std::copy(&amp;de_long_month_names[0], &amp;de_long_month_names[11],
+ std::back_inserter(long_months));
+ std::copy(&amp;de_short_weekday_names[0], &amp;de_short_weekday_names[6],
+ std::back_inserter(short_weekdays));
+ std::copy(&amp;de_long_weekday_names[0], &amp;de_long_weekday_names[6],
+ std::back_inserter(long_weekdays));
+
+ // replace the default names with ours
+ // NOTE: date_generators and special_values were not replaced as
+ // they are not used in this example
+ german_facet-&gt;short_month_names(short_months);
+ german_facet-&gt;long_month_names(long_months);
+ german_facet-&gt;short_weekday_names(short_weekdays);
+ german_facet-&gt;long_weekday_names(long_weekdays);
+
+ // output the date in German using short month names
+ german_facet-&gt;format("%d.%m.%Y");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; //01.10.2002
+
+ german_facet-&gt;month_format("%B");
+ std::cout &lt;&lt; m &lt;&lt; std::endl; //Oktober
+
+ german_facet-&gt;weekday_format("%A");
+ std::cout &lt;&lt; wd &lt;&lt; std::endl; //Dienstag
+
+
+ // Output the same gregorian objects using US names
+ date_facet* us_facet = new date_facet();
+ std::cout.imbue(std::locale(std::locale::classic(), us_facet));
+
+ us_facet-&gt;format("%m/%d/%Y");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; // 10/01/2002
+
+ // English names, iso order (year-month-day), '-' separator
+ us_facet-&gt;format("%Y-%b-%d");
+ std::cout &lt;&lt; d1 &lt;&lt; std::endl; // 2002-Oct-01
+
+ return 0;
+
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.date_period_calc"></a>Date Period Calculations</h4></div></div></div>
+<p>
+ Calculates if a date is in an 'irregular' collection of periods using period calculation functions.
+ </p>
+<pre class="programlisting">
+ /*
+ This example demonstrates a simple use of periods for the calculation
+ of date information.
+
+ The example calculates if a given date is a weekend or holiday
+ given an exclusion set. That is, each weekend or holiday is
+ entered into the set as a time interval. Then if a given date
+ is contained within any of the intervals it is considered to
+ be within the exclusion set and hence is a offtime.
+
+ Output:
+ Number Excluded Periods: 5
+ 20020202/20020203
+ 20020209/20020210
+ 20020212/20020212
+ 20020216/20020217
+ In Exclusion Period: 20020216 --&gt; 20020216/20020217
+ 20020223/20020224
+
+ */
+
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;set&gt;
+ #include &lt;algorithm&gt;
+ #include &lt;iostream&gt;
+
+ typedef std::set&lt;boost::gregorian::date_period&gt; date_period_set;
+
+ //Simple population of the exclusion set
+ date_period_set
+ generateExclusion()
+ {
+ using namespace boost::gregorian;
+ date_period periods_array[] =
+ { date_period(date(2002,Feb,2), date(2002,Feb,4)),//weekend of 2nd-3rd
+ date_period(date(2002,Feb,9), date(2002,Feb,11)),
+ date_period(date(2002,Feb,16), date(2002,Feb,18)),
+ date_period(date(2002,Feb,23), date(2002,Feb,25)),
+ date_period(date(2002,Feb,12), date(2002,Feb,13))//a random holiday 2-12
+ };
+ const int num_periods = sizeof(periods_array)/sizeof(date_period);
+
+ date_period_set ps;
+ //insert the periods in the set
+ std::insert_iterator&lt;date_period_set&gt; itr(ps, ps.begin());
+ std::copy(periods_array, periods_array+num_periods, itr );
+ return ps;
+
+ }
+
+
+ int main()
+ {
+ using namespace boost::gregorian;
+
+ date_period_set ps = generateExclusion();
+ std::cout &lt;&lt; "Number Excluded Periods: " &lt;&lt; ps.size() &lt;&lt; std::endl;
+
+ date d(2002,Feb,16);
+ date_period_set::const_iterator i = ps.begin();
+ //print the periods, check for containment
+ for (;i != ps.end(); i++) {
+ std::cout &lt;&lt; to_iso_string(*i) &lt;&lt; std::endl;
+ //if date is in exclusion period then print it
+ if (i-&gt;contains(d)) {
+ std::cout &lt;&lt; "In Exclusion Period: "
+ &lt;&lt; to_iso_string(d) &lt;&lt; " --&gt; " &lt;&lt; to_iso_string(*i)
+ &lt;&lt; std::endl;
+ }
+ }
+
+ return 0;
+
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.print_holidays"></a>Print Holidays</h4></div></div></div>
+<p>
+ This is an example of using functors to define a holiday schedule
+ </p>
+<pre class="programlisting">
+
+ /* Generate a set of dates using a collection of date generators
+ * Output looks like:
+ * Enter Year: 2002
+ * 2002-Jan-01 [Tue]
+ * 2002-Jan-21 [Mon]
+ * 2002-Feb-12 [Tue]
+ * 2002-Jul-04 [Thu]
+ * 2002-Sep-02 [Mon]
+ * 2002-Nov-28 [Thu]
+ * 2002-Dec-25 [Wed]
+ * Number Holidays: 7
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;algorithm&gt;
+ #include &lt;functional&gt;
+ #include &lt;vector&gt;
+ #include &lt;iostream&gt;
+ #include &lt;set&gt;
+
+ void
+ print_date(boost::gregorian::date d)
+ {
+ using namespace boost::gregorian;
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout &lt;&lt; to_simple_string(d) &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
+ #else
+ std::cout &lt;&lt; d &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
+ #endif
+ }
+
+
+ int
+ main() {
+
+ std::cout &lt;&lt; "Enter Year: ";
+ int year;
+ std::cin &gt;&gt; year;
+
+ using namespace boost::gregorian;
+
+ //define a collection of holidays fixed by month and day
+ std::vector&lt;year_based_generator*&gt; holidays;
+ holidays.push_back(new partial_date(1,Jan)); //Western New Year
+ holidays.push_back(new partial_date(4,Jul)); //US Independence Day
+ holidays.push_back(new partial_date(25, Dec));//Christmas day
+
+
+ //define a shorthand for the nth_day_of_the_week_in_month function object
+ typedef nth_day_of_the_week_in_month nth_dow;
+
+ //US labor day
+ holidays.push_back(new nth_dow(nth_dow::first, Monday, Sep));
+ //MLK Day
+ holidays.push_back(new nth_dow(nth_dow::third, Monday, Jan));
+ //Pres day
+ holidays.push_back(new nth_dow(nth_dow::second, Tuesday, Feb));
+ //Thanksgiving
+ holidays.push_back(new nth_dow(nth_dow::fourth, Thursday, Nov));
+
+ typedef std::set&lt;date&gt; date_set;
+ date_set all_holidays;
+
+ for(std::vector&lt;year_based_generator*&gt;::iterator it = holidays.begin();
+ it != holidays.end(); ++it)
+ {
+ all_holidays.insert((*it)-&gt;get_date(year));
+ }
+
+ //print the holidays to the screen
+ std::for_each(all_holidays.begin(), all_holidays.end(), print_date);
+ std::cout &lt;&lt; "Number Holidays: " &lt;&lt; all_holidays.size() &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.print_month"></a>Print Month</h4></div></div></div>
+<p>
+ Simple utility to print out days of the month with the days of a month. Demontstrates date iteration (date_time::date_itr).
+ </p>
+<pre class="programlisting">
+ /* This example prints all the dates in a month. It demonstrates
+ * the use of iterators as well as functions of the gregorian_calendar
+ *
+ * Output:
+ * Enter Year: 2002
+ * Enter Month(1..12): 2
+ * 2002-Feb-01 [Fri]
+ * 2002-Feb-02 [Sat]
+ * 2002-Feb-03 [Sun]
+ * 2002-Feb-04 [Mon]
+ * 2002-Feb-05 [Tue]
+ * 2002-Feb-06 [Wed]
+ * 2002-Feb-07 [Thu]
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ std::cout &lt;&lt; "Enter Year: ";
+ int year, month;
+ std::cin &gt;&gt; year;
+ std::cout &lt;&lt; "Enter Month(1..12): ";
+ std::cin &gt;&gt; month;
+
+ using namespace boost::gregorian;
+ try {
+ //Use the calendar to get the last day of the month
+ int eom_day = gregorian_calendar::end_of_month_day(year,month);
+ date endOfMonth(year,month,eom_day);
+
+ //construct an iterator starting with firt day of the month
+ day_iterator ditr(date(year,month,1));
+ //loop thru the days and print each one
+ for (; ditr &lt;= endOfMonth; ++ditr) {
+ #if defined(BOOST_DATE_TIME_NO_LOCALE)
+ std::cout &lt;&lt; to_simple_string(*ditr) &lt;&lt; " ["
+ #else
+ std::cout &lt;&lt; *ditr &lt;&lt; " ["
+ #endif
+ &lt;&lt; ditr-&gt;day_of_week() &lt;&lt; "]"
+ &lt;&lt; std::endl;
+ }
+ }
+ catch(std::exception&amp; e) {
+
+ std::cout &lt;&lt; "Error bad date, check your entry: \n"
+ &lt;&lt; " Details: " &lt;&lt; e.what() &lt;&lt; std::endl;
+ }
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.month_add"></a>Month Adding</h4></div></div></div>
+<p>
+ Adding a month to a day without the use of iterators.
+ </p>
+<pre class="programlisting">
+ /* Simple program that uses the gregorian calendar to progress by exactly
+ * one month, irregardless of how many days are in that month.
+ *
+ * This method can be used as an alternative to iterators
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+
+ using namespace boost::gregorian;
+
+ date d = day_clock::local_day();
+ add_month mf(1);
+ date d2 = d + mf.get_offset(d);
+ std::cout &lt;&lt; "Today is: " &lt;&lt; to_simple_string(d) &lt;&lt; ".\n"
+ &lt;&lt; "One month from today will be: " &lt;&lt; to_simple_string(d2)
+ &lt;&lt; std::endl;
+
+ return 0;
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.time_math"></a>Time Math</h4></div></div></div>
+<p>
+ Various types of calculations with times and time durations.
+ </p>
+<pre class="programlisting">
+ /* Some simple examples of constructing and calculating with times
+ * Output:
+ * 2002-Feb-01 00:00:00 - 2002-Feb-01 05:04:02.001000000 = -5:04:02.001000000
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ date d(2002,Feb,1); //an arbitrary date
+ //construct a time by adding up some durations durations
+ ptime t1(d, hours(5)+minutes(4)+seconds(2)+millisec(1));
+ //construct a new time by subtracting some times
+ ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);
+ //construct a duration by taking the difference between times
+ time_duration td = t2 - t1;
+
+ std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " - "
+ &lt;&lt; to_simple_string(t1) &lt;&lt; " = "
+ &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
+
+ return 0;
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.print_hours"></a>Print Hours</h4></div></div></div>
+<p>
+ Demonstrate time iteration, clock retrieval, and simple calculation.
+ </p>
+<pre class="programlisting">
+ /* Print the remaining hours of the day
+ * Uses the clock to get the local time
+ * Use an iterator to iterate over the remaining hours
+ * Retrieve the date part from a time
+ *
+ * Expected Output something like:
+ *
+ * 2002-Mar-08 16:30:59
+ * 2002-Mar-08 17:30:59
+ * 2002-Mar-08 18:30:59
+ * 2002-Mar-08 19:30:59
+ * 2002-Mar-08 20:30:59
+ * 2002-Mar-08 21:30:59
+ * 2002-Mar-08 22:30:59
+ * 2002-Mar-08 23:30:59
+ * Time left till midnight: 07:29:01
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //get the current time from the clock -- one second resolution
+ ptime now = second_clock::local_time();
+ //Get the date part out of the time
+ date today = now.date();
+ date tommorrow = today + days(1);
+ ptime tommorrow_start(tommorrow); //midnight
+
+ //iterator adds by one hour
+ time_iterator titr(now,hours(1));
+ for (; titr &lt; tommorrow_start; ++titr) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ }
+
+ time_duration remaining = tommorrow_start - now;
+ std::cout &lt;&lt; "Time left till midnight: "
+ &lt;&lt; to_simple_string(remaining) &lt;&lt; std::endl;
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.local_utc_conversion"></a>Local to UTC Conversion</h4></div></div></div>
+<p>
+ Demonstrate utc to local and local to utc calculations including dst.
+ </p>
+<pre class="programlisting">
+
+ /* Demonstrate conversions between a local time and utc
+ * Output:
+ *
+ * UTC &lt;--&gt; New York while DST is NOT active (5 hours)
+ * 2001-Dec-31 19:00:00 in New York is 2002-Jan-01 00:00:00 UTC time
+ * 2002-Jan-01 00:00:00 UTC is 2001-Dec-31 19:00:00 New York time
+ *
+ * UTC &lt;--&gt; New York while DST is active (4 hours)
+ * 2002-May-31 20:00:00 in New York is 2002-Jun-01 00:00:00 UTC time
+ * 2002-Jun-01 00:00:00 UTC is 2002-May-31 20:00:00 New York time
+ *
+ * UTC &lt;--&gt; Arizona (7 hours)
+ * 2002-May-31 17:00:00 in Arizona is 2002-Jun-01 00:00:00 UTC time
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include "boost/date_time/local_time_adjustor.hpp"
+ #include "boost/date_time/c_local_time_adjustor.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //This local adjustor depends on the machine TZ settings-- highly dangerous!
+ typedef boost::date_time::c_local_adjustor&lt;ptime&gt; local_adj;
+ ptime t10(date(2002,Jan,1), hours(7));
+ ptime t11 = local_adj::utc_to_local(t10);
+ std::cout &lt;&lt; "UTC &lt;--&gt; Zone base on TZ setting" &lt;&lt; std::endl;
+ std::cout &lt;&lt; to_simple_string(t11) &lt;&lt; " in your TZ is "
+ &lt;&lt; to_simple_string(t10) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+ time_duration td = t11 - t10;
+ std::cout &lt;&lt; "A difference of: "
+ &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
+
+
+ //eastern timezone is utc-5
+ typedef boost::date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
+
+ ptime t1(date(2001,Dec,31), hours(19)); //5 hours b/f midnight NY time
+
+ std::cout &lt;&lt; "\nUTC &lt;--&gt; New York while DST is NOT active (5 hours)"
+ &lt;&lt; std::endl;
+ ptime t2 = us_eastern::local_to_utc(t1);
+ std::cout &lt;&lt; to_simple_string(t1) &lt;&lt; " in New York is "
+ &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ ptime t3 = us_eastern::utc_to_local(t2);//back should be the same
+ std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC is "
+ &lt;&lt; to_simple_string(t3) &lt;&lt; " New York time "
+ &lt;&lt; "\n\n";
+
+ ptime t4(date(2002,May,31), hours(20)); //4 hours b/f midnight NY time
+ std::cout &lt;&lt; "UTC &lt;--&gt; New York while DST is active (4 hours)" &lt;&lt; std::endl;
+ ptime t5 = us_eastern::local_to_utc(t4);
+ std::cout &lt;&lt; to_simple_string(t4) &lt;&lt; " in New York is "
+ &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ ptime t6 = us_eastern::utc_to_local(t5);//back should be the same
+ std::cout &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC is "
+ &lt;&lt; to_simple_string(t6) &lt;&lt; " New York time "
+ &lt;&lt; "\n" &lt;&lt; std::endl;
+
+
+ //Arizona timezone is utc-7 with no dst
+ typedef boost::date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
+
+ ptime t7(date(2002,May,31), hours(17));
+ std::cout &lt;&lt; "UTC &lt;--&gt; Arizona (7 hours)" &lt;&lt; std::endl;
+ ptime t8 = us_arizona::local_to_utc(t7);
+ std::cout &lt;&lt; to_simple_string(t7) &lt;&lt; " in Arizona is "
+ &lt;&lt; to_simple_string(t8) &lt;&lt; " UTC time "
+ &lt;&lt; std::endl;
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.time_periods"></a>Time Periods</h4></div></div></div>
+<p>
+ Demonstrate some simple uses of time periods.
+ </p>
+<pre class="programlisting">
+
+ /* Some simple examples of constructing and calculating with times
+ * Returns:
+ * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999]
+ * contains 2002-Feb-01 03:00:05
+ * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999]
+ * intersected with
+ * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
+ * is
+ * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
+ */
+
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+
+ //Create a simple period class to contain all the times in a day
+ class day_period : public time_period
+ {
+ public:
+ day_period(date d) : time_period(ptime(d),//midnight
+ ptime(d,hours(24)))
+ {}
+
+ };
+
+ int
+ main()
+ {
+
+ date d(2002,Feb,1); //an arbitrary date
+ //a period that represents a day
+ day_period dp(d);
+ ptime t(d, hours(3)+seconds(5)); //an arbitray time on that day
+ if (dp.contains(t)) {
+ std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " contains "
+ &lt;&lt; to_simple_string(t) &lt;&lt; std::endl;
+ }
+ //a period that represents part of the day
+ time_period part_of_day(ptime(d, hours(0)), t);
+ //intersect the 2 periods and print the results
+ if (part_of_day.intersects(dp)) {
+ time_period result = part_of_day.intersection(dp);
+ std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " intersected with\n"
+ &lt;&lt; to_simple_string(part_of_day) &lt;&lt; " is \n"
+ &lt;&lt; to_simple_string(result) &lt;&lt; std::endl;
+ }
+
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.simple_time_zone"></a>Simple Time Zones</h4></div></div></div>
+<p>
+ Example usage of custom_time_zone as well as posix_time_zone.
+ </p>
+<pre class="programlisting">
+ /* A simple example for using a custom_time_zone and a posix_time_zone.
+ */
+
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost;
+ using namespace local_time;
+ using namespace gregorian;
+ using posix_time::time_duration;
+
+ /***** custom_time_zone *****/
+
+ // create the dependent objects for a custom_time_zone
+ time_zone_names tzn("Eastern Standard Time", "EST",
+ "Eastern Daylight Time", "EDT");
+ time_duration utc_offset(-5,0,0);
+ dst_adjustment_offsets adj_offsets(time_duration(1,0,0),
+ time_duration(2,0,0),
+ time_duration(2,0,0));
+ // rules for this zone are:
+ // start on first Sunday of April at 2 am
+ // end on last Sunday of October at 2 am
+ // so we use a first_last_dst_rule
+ first_day_of_the_week_in_month start_rule(Sunday, Apr);
+ last_day_of_the_week_in_month end_rule(Sunday, Oct);
+ shared_ptr&lt;dst_calc_rule&gt; nyc_rules(new first_last_dst_rule(start_rule,
+ end_rule));
+ // create more dependent objects for a non-dst custom_time_zone
+ time_zone_names tzn2("Mountain Standard Time", "MST",
+ "", ""); // no dst means empty dst strings
+ time_duration utc_offset2(-7,0,0);
+ dst_adjustment_offsets adj_offsets2(time_duration(0,0,0),
+ time_duration(0,0,0),
+ time_duration(0,0,0));
+ // no dst means we need a null pointer to the rules
+ shared_ptr&lt;dst_calc_rule&gt; phx_rules;
+
+ // create the custom_time_zones
+ time_zone_ptr nyc_1(new custom_time_zone(tzn, utc_offset,
+ adj_offsets, nyc_rules));
+ time_zone_ptr phx_1(new custom_time_zone(tzn2, utc_offset2,
+ adj_offsets2, phx_rules));
+
+ /***** posix_time_zone *****/
+
+ // create posix_time_zones that are the duplicates of the
+ // custom_time_zones created above. See posix_time_zone documentation
+ // for details on full zone names.
+ std::string nyc_string, phx_string;
+ nyc_string = "EST-05:00:00EDT+01:00:00,M4.1.0/02:00:00,M10.5.0/02:00:00";
+ // nyc_string = "EST-05EDT,M4.1.0,M10.5.0"; // shorter when defaults used
+ phx_string = "MST-07"; // no-dst
+ time_zone_ptr nyc_2(new posix_time_zone(nyc_string));
+ time_zone_ptr phx_2(new posix_time_zone(phx_string));
+
+
+ /***** show the sets are equal *****/
+
+ std::cout &lt;&lt; "The first zone is in daylight savings from:\n "
+ &lt;&lt; nyc_1-&gt;dst_local_start_time(2004) &lt;&lt; " through "
+ &lt;&lt; nyc_1-&gt;dst_local_end_time(2004) &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The second zone is in daylight savings from:\n "
+ &lt;&lt; nyc_2-&gt;dst_local_start_time(2004) &lt;&lt; " through "
+ &lt;&lt; nyc_2-&gt;dst_local_end_time(2004) &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The third zone (no daylight savings):\n "
+ &lt;&lt; phx_1-&gt;std_zone_abbrev() &lt;&lt; " and "
+ &lt;&lt; phx_1-&gt;base_utc_offset() &lt;&lt; std::endl;
+
+ std::cout &lt;&lt; "The fourth zone (no daylight savings):\n "
+ &lt;&lt; phx_2-&gt;std_zone_abbrev() &lt;&lt; " and "
+ &lt;&lt; phx_2-&gt;base_utc_offset() &lt;&lt; std::endl;
+
+ return 0;
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.calc_rules"></a>Daylight Savings Calc Rules</h4></div></div></div>
+<p>
+ Example of creating various Daylight Savings Calc Rule objects.
+ </p>
+<pre class="programlisting">
+ /* A simple example for creating various dst_calc_rule instances
+ */
+
+ #include "boost/date_time/gregorian/gregorian.hpp"
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int
+ main()
+ {
+ using namespace boost;
+ using namespace local_time;
+ using namespace gregorian;
+
+ /***** create the necessary date_generator objects *****/
+ // starting generators
+ first_day_of_the_week_in_month fd_start(Sunday, May);
+ last_day_of_the_week_in_month ld_start(Sunday, May);
+ nth_day_of_the_week_in_month nkd_start(nth_day_of_the_week_in_month::third,
+ Sunday, May);
+ partial_date pd_start(1, May);
+ // ending generators
+ first_day_of_the_week_in_month fd_end(Sunday, Oct);
+ last_day_of_the_week_in_month ld_end(Sunday, Oct);
+ nth_day_of_the_week_in_month nkd_end(nth_day_of_the_week_in_month::third,
+ Sunday, Oct);
+ partial_date pd_end(31, Oct);
+
+ /***** create the various dst_calc_rule objects *****/
+ dst_calc_rule_ptr pdr(new partial_date_dst_rule(pd_start, pd_end));
+ dst_calc_rule_ptr flr(new first_last_dst_rule(fd_start, ld_end));
+ dst_calc_rule_ptr llr(new last_last_dst_rule(ld_start, ld_end));
+ dst_calc_rule_ptr nlr(new nth_last_dst_rule(nkd_start, ld_end));
+ dst_calc_rule_ptr ndr(new nth_day_of_the_week_in_month_dst_rule(nkd_start,
+ nkd_end));
+
+ return 0;
+ }
+
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.flight"></a>Flight Time Example</h4></div></div></div>
+<p>This example shows a program that calculates the arrival time of a plane that flys from Phoenix to New York. During the flight New York shifts into daylight savings time (Phoenix doesn't because Arizona doesn't use dst).</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="string"> "boost/date_time/local_time/local_time.hpp"</span><span class="preprocessor">
+#include</span><span class="special"> &lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span><span class="comment">
+
+/* This example shows a program that calculates the arrival time of a plane
+ * that flys from Phoenix to New York. During the flight New York shifts
+ * into daylight savings time (Phoenix doesn't because Arizona doesn't use
+ * dst).
+ *
+ *
+ */</span><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">gregorian</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">local_time</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">posix_time</span><span class="special">;</span><span class="comment">
+
+
+ //setup some timezones for creating and adjusting local times
+ //This user editable file can be found in libs/date_time/data.
+</span><span class="identifier"> tz_database</span><span class="identifier"> tz_db</span><span class="special">;</span><span class="identifier">
+ tz_db</span><span class="special">.</span><span class="identifier">load_from_file</span><span class="special">(</span><span class="string">"date_time_zonespec.csv"</span><span class="special">);</span><span class="identifier">
+ time_zone_ptr</span><span class="identifier"> nyc_tz</span><span class="special"> =</span><span class="identifier"> tz_db</span><span class="special">.</span><span class="identifier">time_zone_from_region</span><span class="special">(</span><span class="string">"America/New_York"</span><span class="special">);</span><span class="comment">
+ //Use a
+</span><span class="identifier"> time_zone_ptr</span><span class="identifier"> phx_tz</span><span class="special">(</span><span class="keyword">new</span><span class="identifier"> posix_time_zone</span><span class="special">(</span><span class="string">"MST-07:00:00"</span><span class="special">));</span><span class="comment">
+
+ //local departure time in phoenix is 11 pm on april 2 2005
+ // (ny changes to dst on apr 3 at 2 am)
+</span><span class="identifier"> local_date_time</span><span class="identifier"> phx_departure</span><span class="special">(</span><span class="identifier">date</span><span class="special">(</span><span class="number">2005</span><span class="special">,</span><span class="identifier"> Apr</span><span class="special">,</span><span class="number"> 2</span><span class="special">),</span><span class="identifier"> hours</span><span class="special">(</span><span class="number">23</span><span class="special">),</span><span class="identifier">
+ phx_tz</span><span class="special">,</span><span class="identifier">
+ local_date_time</span><span class="special">::</span><span class="identifier">NOT_DATE_TIME_ON_ERROR</span><span class="special">);</span><span class="identifier">
+
+ time_duration</span><span class="identifier"> flight_length</span><span class="special"> =</span><span class="identifier"> hours</span><span class="special">(</span><span class="number">4</span><span class="special">)</span><span class="special"> +</span><span class="identifier"> minutes</span><span class="special">(</span><span class="number">30</span><span class="special">);</span><span class="identifier">
+ local_date_time</span><span class="identifier"> phx_arrival</span><span class="special"> =</span><span class="identifier"> phx_departure</span><span class="special"> +</span><span class="identifier"> flight_length</span><span class="special">;</span><span class="identifier">
+ local_date_time</span><span class="identifier"> nyc_arrival</span><span class="special"> =</span><span class="identifier"> phx_arrival</span><span class="special">.</span><span class="identifier">local_time_in</span><span class="special">(</span><span class="identifier">nyc_tz</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"> "departure phx time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> phx_departure</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="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "arrival phx time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> phx_arrival</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="identifier">
+ std</span><span class="special">::</span><span class="identifier">cout</span><span class="special"> &lt;&lt;</span><span class="string"> "arrival nyc time: "</span><span class="special"> &lt;&lt;</span><span class="identifier"> nyc_arrival</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></code></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.examples.seconds_since_epoch"></a>Seconds Since Epoch</h4></div></div></div>
+<p>
+ Example of calculating seconds elapsed since epoch (1970-Jan-1) using local_date_time.
+ </p>
+<pre class="programlisting">
+ /* This example demonstrates the use of the time zone database and
+ * local time to calculate the number of seconds since the UTC
+ * time_t epoch 1970-01-01 00:00:00. Note that the selected timezone
+ * could be any timezone supported in the time zone database file which
+ * can be modified and updated as needed by the user.
+ *
+ * To solve this problem the following steps are required:
+ * 1) Get a timezone from the tz database for the local time
+ * 2) Construct a local time using the timezone
+ * 3) Construct a posix_time::ptime for the time_t epoch time
+ * 4) Convert the local_time to utc and subtract the epoch time
+ *
+ */
+
+ #include "boost/date_time/local_time/local_time.hpp"
+ #include &lt;iostream&gt;
+
+ int main()
+ {
+ using namespace boost::gregorian;
+ using namespace boost::local_time;
+ using namespace boost::posix_time;
+
+ tz_database tz_db;
+ try {
+ tz_db.load_from_file("../data/date_time_zonespec.csv");
+ }catch(data_not_accessible dna) {
+ std::cerr &lt;&lt; "Error with time zone data file: " &lt;&lt; dna.what() &lt;&lt; std::endl;
+ exit(EXIT_FAILURE);
+ }catch(bad_field_count bfc) {
+ std::cerr &lt;&lt; "Error with time zone data file: " &lt;&lt; bfc.what() &lt;&lt; std::endl;
+ exit(EXIT_FAILURE);
+ }
+
+ time_zone_ptr nyc_tz = tz_db.time_zone_from_region("America/New_York");
+ date in_date(2004,10,04);
+ time_duration td(12,14,32);
+ // construct with local time value
+ // create not-a-date-time if invalid (eg: in dst transition)
+ local_date_time nyc_time(in_date,
+ td,
+ nyc_tz,
+ local_date_time::NOT_DATE_TIME_ON_ERROR);
+
+ std::cout &lt;&lt; nyc_time &lt;&lt; std::endl;
+
+ ptime time_t_epoch(date(1970,1,1));
+ std::cout &lt;&lt; time_t_epoch &lt;&lt; std::endl;
+
+ // first convert nyc_time to utc via the utc_time()
+ // call and subtract the ptime.
+ time_duration diff = nyc_time.utc_time() - time_t_epoch;
+
+ //Expected 1096906472
+ std::cout &lt;&lt; "Seconds diff: " &lt;&lt; diff.total_seconds() &lt;&lt; std::endl;
+
+ }
+ </pre>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="details.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="doxy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/examples/general_usage_examples.html b/doc/html/date_time/examples/general_usage_examples.html
new file mode 100644
index 0000000000..55f0e969d3
--- /dev/null
+++ b/doc/html/date_time/examples/general_usage_examples.html
@@ -0,0 +1,126 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>General Usage Examples</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="../../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="next" href="../gregorian.html" title="Gregorian">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../date_time.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time.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="../gregorian.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="date_time.examples.general_usage_examples"></a>General Usage Examples</h3></div></div></div>
+<p>
+ The following provides some sample usage of dates.
+ See <a href="../gregorian.html" title="Gregorian">Date Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting"><span class="keyword">using namespace</span> boost::gregorian;
+ date weekstart(<span class="number">2002</span>,Feb,<span class="number">1</span>);
+ date weekend = weekstart + week(<span class="number">1</span>);
+ date d2 = d1 + days(<span class="number">5</span>);
+ date today = day_clock::local_day();
+ if (d2 &gt;= today) {} <span class="comment">//date comparison operators</span>
+
+ date_period thisWeek(d1,d2);
+ <span class="keyword">if</span> (thisWeek.contains(today)) {}<span class="comment">//do something
+
+ //iterate and print the week</span>
+ day_iterator itr(weekstart);
+ <span class="keyword">while</span> (itr &lt;= weekend) {
+ std::cout &lt;&lt; (*itr) &lt;&lt; std::endl;
+ ++itr;
+ }
+ <span class="comment">//input streaming</span>
+ std::stringstream ss(<span class="string">"2004-Jan-1"</span>);
+ ss &gt;&gt; d3;
+
+ <span class="comment">//date generator functions</span>
+ date d5 = next_weekday(d4, Sunday); <span class="comment">//calculate Sunday following d4
+
+ //US labor day is first Monday in Sept</span>
+ nth_day_of_the_week_in_month labor_day(nth_dow::first,Monday, Sep);
+ <span class="comment">//calculate a specific date for 2004 from functor</span>
+ date d6 = labor_day.get_date(<span class="number">2004</span>);
+ </pre>
+<p>
+
+ The following provides some example code using times.
+ See <a href="../posix_time.html" title="Posix Time">Time Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting"><span class="keyword">using namespace</span> boost::posix_time;
+ date d(<span class="number">2002</span>,Feb,<span class="number">1</span>); <span class="comment">//an arbitrary date</span>
+ ptime t1(d, hours(<span class="number">5</span>)+nanosec(<span class="number">100</span>)); <span class="comment">//date + time of day offset</span>
+ ptime t2 = t1 - minutes(<span class="number">4</span>)+seconds(<span class="number">2</span>);
+ ptime now = second_clock::local_time(); <span class="comment">//use the clock</span>
+ date today = now.date(); <span class="comment">//Get the date part out of the time</span>
+ date tomorrow = today + date_duration(<span class="number">1</span>);
+ ptime tomorrow_start(tomorrow); <span class="comment">//midnight
+
+ //input streaming</span>
+ std::stringstream ss(<span class="string">"2004-Jan-1 05:21:33.20"</span>);
+ ss &gt;&gt; t2;
+
+ <span class="comment">//starting at current time iterator adds by one hour</span>
+ time_iterator titr(now,hours(<span class="number">1</span>));
+ <span class="keyword">for</span> (; titr &lt; tomorrow_start; ++titr) {
+ std::cout &lt;&lt; (*titr) &lt;&lt; std::endl;
+ }
+ </pre>
+<p>
+ The following provides some example code using times.
+ See <a href="../local_time.html" title="Local Time">Local Time Programming</a>
+ for more details.
+
+ </p>
+<pre class="programlisting"><span class="keyword">using namespace</span> boost::local_time;
+ <span class="comment">//setup some timezones for creating and adjusting times
+ //first time zone uses the time zone file for regional timezone definitions</span>
+ tz_database tz_db;
+ tz_db.load_from_file(<span class="string">"date_time_zonespec.csv"</span>);
+ time_zone_ptr nyc_tz = tz_db.time_zone_from_region(<span class="string">"America/New_York"</span>);
+ <span class="comment">//This timezone uses a posix time zone string definition to create a time zone</span>
+ time_zone_ptr phx_tz(new posix_time_zone(<span class="string">"MST-07:00:00"</span>));
+
+ <span class="comment">//local departure time in phoenix is 11 pm on April 2 2005
+ // Note that New York changes to daylight savings on Apr 3 at 2 am)</span>
+ local_date_time phx_departure(date(<span class="number">2005</span>, Apr, <span class="number">2</span>), hours(<span class="number">23</span>), phx_tz,
+ local_date_time::NOT_DATE_TIME_ON_ERROR);
+
+ time_duration flight_length = hours(<span class="number">4</span>) + minutes(<span class="number">30</span>);
+ local_date_time phx_arrival = phx_departure + flight_length;
+ <span class="comment">//convert the phx time to a nyz time</span>
+ local_date_time nyc_arrival = phx_arrival.local_time_in(nyc_tz);
+
+ <span class="comment">//2005-Apr-03 06:30:00 EDT</span>
+ std::cout &lt;&lt; nyc_arrival &lt;&lt; std::endl;
+ </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"><small>Copyright © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../../date_time.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../../date_time.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="../gregorian.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/gregorian.html b/doc/html/date_time/gregorian.html
new file mode 100644
index 0000000000..21c5de7918
--- /dev/null
+++ b/doc/html/date_time/gregorian.html
@@ -0,0 +1,1277 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Gregorian</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="examples/general_usage_examples.html" title="General Usage Examples">
+<link rel="next" href="posix_time.html" title="Posix Time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/general_usage_examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="posix_time.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="date_time.gregorian"></a>Gregorian</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_class">Date</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_duration">Date Duration (aka Days)</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_period">Date Period</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_iterators">Date Iterators</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.date_algorithms">Date Generators/Algorithms</a></span></dt>
+<dt><span class="section"><a href="gregorian.html#date_time.gregorian.gregorian_calendar">Gregorian Calendar</a></span></dt>
+</dl></div>
+<h2>
+<a name="id996889"></a>Gregorian Date System</h2>
+<p><a href="gregorian.html#greg_intro">Introduction</a> --
+ <a href="gregorian.html#greg_ex">Usage Examples</a></p>
+<a name="greg_intro"></a><h3>
+<a name="id996913"></a>Introduction</h3>
+<p>The gregorian date system provides a date programming system based the Gregorian Calendar. The first introduction of the Gregorian calendar was in 1582 to fix an error in the Julian Calendar. However, many local jurisdictions did not adopt this change until much later. Thus there is potential confusion with historical dates.
+ </p>
+<p>The implemented calendar is a "propleptic Gregorian calendar" which extends dates back prior to the Gregorian Calendar's first adoption in 1582. The current implementation supports dates in the range 1400-Jan-01 to 9999-Dec-31. Many references will represent dates prior to 1582 using the Julian Calendar, so caution is in order if accurate calculations are required on historic dates. See <a href="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition" target="_top">Calendrical Calculations</a> by Reingold &amp; Dershowitz for more details. Date information from Calendrical Calculations has been used to cross-test the correctness of the Gregorian calendar implementation.
+ </p>
+<p>All types for the gregorian system are found in namespace boost::gregorian. The library supports a convenience header boost/date_time/gregorian/gregorian_types.hpp that will include all the classes of the library with no input/output dependency. Another header boost/date_time/gregorian/gregorian.hpp will include the types and the input/output code.
+ </p>
+<p>The class <a href="gregorian.html#date_time.gregorian.date_class" title="Date">boost::gregorian::date</a> is the primary temporal type for users. If you are interested in learning about writing programs do specialized date calculations such as finding the "first sunday in april" see the date <a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">generators and algorithms page</a>.
+ </p>
+<a name="greg_ex"></a><h3>
+<a name="id996985"></a>Usage Examples</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><div class="literallayout"><p><a href="examples.html#date_time.examples.days_alive" title="Days Alive">Days Alive</a><a href="examples.html#date_time.examples.days_between_new_year" title="Days Between New Years">Days Between New Years</a></p></div></td>
+<td>Simple date arithmetic. Retrieve current day from clock.</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a href="examples.html#date_time.examples.dates_as_strings" title="Dates as Strings">Dates as strings</a></p></div></td>
+<td>Simple parsing and formatting of dates from/to strings</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a href="examples.html#date_time.examples.date_period_calc" title="Date Period Calculations">Date Period Calculations</a></p></div></td>
+<td>See if a date is in a set of date periods (eg: is it a holiday/weekend)</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a href="examples.html#date_time.examples.print_month" title="Print Month">Print a month</a></p></div></td>
+<td>Small utility program which prints out all the days in a month from command line. Need to know if 1999-Jan-1 was a Friday or a Saturday? This program shows how to do it.</td>
+</tr>
+<tr>
+<td valign="top"><div class="literallayout"><p><a href="examples.html#date_time.examples.print_holidays" title="Print Holidays">Print Holidays</a></p></div></td>
+<td>Uses date generators to convert abstract specification into concrete set of dates.</td>
+</tr>
+</tbody>
+</table></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.date_class"></a>Date</h4></div></div></div>
+<a href="gregorian.html#date_intro">Introduction</a> --
+ <a href="gregorian.html#date_header">Header</a> --
+ <a href="gregorian.html#date_construction">Construction</a> --
+ <a href="gregorian.html#date_construct_from_string">Construct from String</a> --
+ <a href="gregorian.html#date_construct_from_clock">Construct from Clock</a> --
+ <a href="gregorian.html#date_accessors">Accessors</a> --
+ <a href="gregorian.html#date_convert_to_string">Convert to String</a> --
+ <a href="gregorian.html#date_operators">Operators</a> --
+ <a href="gregorian.html#date_tm_funcs">Struct tm Functions</a><a name="date_intro"></a><h3>
+<a name="id997205"></a>Introduction</h3>
+<p>
+ The class boost::gregorian::date is the primary interface for date programming. In general,
+ the date class is immutable once constructed although it does allow assignment from another
+ date.
+ Techniques for creating dates include reading the
+ <a href="gregorian.html#date_construct_from_clock">current date from the clock</a>,
+ using <a href="gregorian.html#date_time.gregorian.date_iterators" title="Date Iterators">date iterators</a>, and
+ <a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date algorithms or generators</a>.
+ </p>
+<p>
+ Internally boost::gregorian::date is stored as a 32 bit integer type. The class is specifically
+ designed to NOT contain virtual functions. This design allows for efficient
+ calculation and memory usage with large collections of dates.
+ </p>
+<p>
+ The construction of a date ensures validates all input such that it is not possible to
+ construct and 'invalid' date. That is 2001-Feb-29 cannot be constructed as a date.
+ Various exceptions derived from std::out_of_range are thrown to indicate which aspect
+ of the date input is invalid. Note that the
+ special value not-a-date-time can be used as 'invalid' or 'null' date if so desired.
+ </p>
+<a name="date_header"></a><h3>
+<a name="id997261"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<a name="date_construction"></a><h3>
+<a name="id997279"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(greg_year, greg_month, greg_day)</pre></td>
+<td>Construct from parts of date. Throws bad_year, bad_day_of_month, or bad_day_month (derivatives of std::out_of_range) if the year, month or day are out of range.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(date d)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">date d1(d);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">date d1(neg_infin);
+date d2(pos_infin);
+date d3(not_a_date_time);
+date d4(max_date_time);
+date d5(min_date_time);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date()</pre></td>
+<td>Default constructor. Creates a date object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</td>
+</tr>
+<tr><td><pre class="screen">date d; // d =&gt; not_a_date_time</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_construct_from_string"></a><h3>
+<a name="id997398"></a>Construct from String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date from_string(std::string)</pre></td>
+<td>From delimited date string where with order year-month-day eg: 2002-1-25</td>
+</tr>
+<tr><td><pre class="screen">std::string ds("2002/1/25");
+date d(from_string(ds));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date from_undelimited_string(std::string)</pre></td>
+<td>From iso type date string where with order year-month-day eg: 20020125</td>
+</tr>
+<tr><td><pre class="screen">std::string ds("20020125");
+date d(from_undelimited_string(ds));</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_construct_from_clock"></a><h3>
+<a name="id997473"></a>Construct from Clock</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_clock::local_day()</pre></td>
+<td>Get the local day based on the time zone settings of the computer.</td>
+</tr>
+<tr><td><pre class="screen">date d(day_clock::local_day());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_clock::universal_day()</pre></td>
+<td>Get the UTC day.</td>
+</tr>
+<tr><td><pre class="screen">date d(day_clock::universal_day());</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_accessors"></a><h3>
+<a name="id997544"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_year year() const</pre></td>
+<td>Get the year part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.year(); // --&gt; 2002</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_month month() const</pre></td>
+<td>Get the month part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.month(); // --&gt; 1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day day() const</pre></td>
+<td> Get the day part of the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.day(); // --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_ymd year_month_day() const</pre></td>
+<td>Return a year_month_day struct. More efficient when all 3 parts of the date are needed.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+date::ymd_type ymd = d.year_month_day();
+// ymd.year --&gt; 2002,
+// ymd.month --&gt; 1,
+// ymd.day --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day_of_week day_of_week() const</pre></td>
+<td>Get the day of the week (eg: Sunday, Monday, etc.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+d.day(); // --&gt; Thursday</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">greg_day_of_year day_of_year() const</pre></td>
+<td>Get the day of the year. Number from 1 to 366 </td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Jan,10);
+d.day_of_year(); // --&gt; 10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end_of_month() const</pre></td>
+<td>Returns a <code class="computeroutput">date</code> object set to the last day of the calling objects current month.</td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Jan,10);
+d.day_of_year(); // --&gt; 2000-Jan-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if date is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(pos_infin);
+d.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if date is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(neg_infin);
+d.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if date is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">date d(neg_infin);
+d.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date() const</pre></td>
+<td>Returns true if value is not a date</td>
+</tr>
+<tr><td><pre class="screen">date d(not_a_date_time);
+d.is_not_a_date(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if date is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">date d(pos_infin);
+date d2(not_a_date_time);
+date d3(2005,Mar,1);
+d.is_special(); // --&gt; true
+d2.is_special(); // --&gt; true
+d3.is_special(); // --&gt; false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">special_value as_special() const</pre></td>
+<td>Returns represented <code class="computeroutput">special_value</code> or <code class="computeroutput">not_special</code> if the represented date is a normal date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long modjulian_day() const</pre></td>
+<td>Returns the modified julian day for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long julian_day() const</pre></td>
+<td>Returns the julian day for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">int week_number() const</pre></td>
+<td>Returns the ISO 8601 week number for the date.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end_of_month_day() const</pre></td>
+<td>Returns the last day of the month for the date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2000,Feb,1);
+//gets Feb 28 -- 2000 was leap year
+date eom = d.end_of_month_day();</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_convert_to_string"></a><h3>
+<a name="id997958"></a>Convert to String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(date d)</pre></td>
+<td>To <code class="computeroutput">YYYY-mmm-DD</code> string where <code class="computeroutput">mmm</code> 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">"2002-Jan-01"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(date d)</pre></td>
+<td>To <code class="computeroutput">YYYYMMDD</code> where all components are integers.</td>
+</tr>
+<tr><td><pre class="screen">"20020131"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_extended_string(date d)</pre></td>
+<td> To <code class="computeroutput">YYYY-MM-DD</code> where all components are integers.</td>
+</tr>
+<tr><td><pre class="screen">"2002-01-31"</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_operators"></a><h3>
+<a name="id998072"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Stream output operator</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+std::cout &lt;&lt; d &lt;&lt; std::endl;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Stream input operator. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for details on exceptions and error conditions.</td>
+</tr>
+<tr><td><pre class="screen">date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">d1 == d2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date operator+(date_duration) const</pre></td>
+<td>Return a date adding a day offset</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d + dd;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date operator-(date_duration) const</pre></td>
+<td>Return a date by adding a day offset</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+date_duration dd(1);
+date d2 = d - dd;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator-(date) const</pre></td>
+<td>Return a date_duration by subtracting two dates</td>
+</tr>
+<tr><td><pre class="screen">date d1(2002,Jan,1);
+date d2(2002,Jan,2);
+date_duration dd = d2-d1;</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_tm_funcs"></a><h3>
+<a name="id998248"></a>Struct tm Functions</h3>
+<p>Functions for converting a <code class="computeroutput">date</code> object to, and from, a <code class="computeroutput">tm</code> struct are provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(date)</pre></td>
+<td>A function for converting a <code class="computeroutput">date</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_hour</code>, <code class="computeroutput">tm_min</code>, and <code class="computeroutput">tm_sec</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td><pre class="screen">date d(2005,Jan,1);
+tm d_tm = to_tm(d);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 0
+ tm_mday =&gt; 1
+ tm_wday =&gt; 6 (Saturday)
+ tm_yday =&gt; 0
+ tm_hour =&gt; 0
+ tm_min =&gt; 0
+ tm_sec =&gt; 0
+ tm_isddst =&gt; -1 */</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date_from_tm(tm datetm)</pre></td>
+<td>A function for converting a <code class="computeroutput">tm</code> struct to a <code class="computeroutput">date</code> object. The fields: <code class="computeroutput">tm_wday </code>, <code class="computeroutput">tm_yday </code>, <code class="computeroutput">tm_hour</code>, <code class="computeroutput">tm_min</code>, <code class="computeroutput">tm_sec</code>, and <code class="computeroutput">tm_isdst</code> are ignored.</td>
+</tr>
+<tr><td><pre class="screen">tm d_tm;
+d_tm.tm_year = 105;
+d_tm.tm_mon = 0;
+d_tm.tm_mday = 1;
+date d = date_from_tm(d_tm);
+// d =&gt; 2005-Jan-01</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.date_duration"></a>Date Duration (aka Days)</h4></div></div></div>
+<a href="gregorian.html#duration_intro">Introduction</a> --
+ <a href="gregorian.html#duration_header">Header</a> --
+ <a href="gregorian.html#duration_construction">Construction</a> --
+ <a href="gregorian.html#duration_accessors">Accessors</a> --
+ <a href="gregorian.html#duration_operators">Operators</a> --
+ <a href="gregorian.html#additional_duration_types">Additional Duration Types</a><a name="duration_intro"></a><h3>
+<a name="id998482"></a>Introduction</h3>
+<p>
+ The class boost::gregorian::date_duration is a simple day count used for arithmetic with <a href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a>. A duration can be either positive or negative.
+ </p>
+<p>
+ As of version 1_32 the date_duration class has been typedef'd as days in the boost::gregorian namespace. Throughout the examples you will find days used instead of date_duration.
+ </p>
+<a name="duration_header"></a><h3>
+<a name="id998508"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<a name="duration_construction"></a><h3>
+<a name="id998526"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration(long)</pre></td>
+<td>Create a duration count.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(3); //3 days</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">days dd1(neg_infin);
+days dd2(pos_infin);
+days dd3(not_a_date_time);
+days dd4(max_date_time);
+days dd5(min_date_time);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="duration_accessors"></a><h3>
+<a name="id998600"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long days() const</pre></td>
+<td>Get the day count.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(3); dd.days() --&gt; 3</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_negative() const</pre></td>
+<td>True if number of days is less than zero.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd(-1); dd.is_negative() --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static date_duration unit()</pre></td>
+<td>Return smallest possible unit of duration type.</td>
+</tr>
+<tr><td><pre class="screen">date_duration::unit() --&gt; date_duration(1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if days is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">days dd(pos_infin);
+days dd2(not_a_date_time);
+days dd3(25);
+dd.is_special(); // --&gt; true
+dd2.is_special(); // --&gt; true
+dd3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<a name="duration_operators"></a><h3>
+<a name="id998713"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td><pre class="screen">date d(not_a_date_time);
+stringstream ss("2002-Jan-01");
+ss &gt;&gt; d;
+std::cout &lt;&lt; d; // "2002-Jan-01"
+</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dd1 == dd2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator+(date_duration) const</pre></td>
+<td>Add date durations.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 + dd2;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_duration operator-(date_duration) const</pre></td>
+<td>Subtract durations.</td>
+</tr>
+<tr><td><pre class="screen">date_duration dd1(3);
+date_duration dd2(5);
+date_duration dd3 = dd1 - dd2;</pre></td></tr>
+</tbody>
+</table></div>
+<a name="additional_duration_types"></a><h3>
+<a name="id998855"></a>Additional Duration Types</h3>
+<p>These additional types are logical representations of spans of days.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">months(int num_of_months)</pre></td>
+<td>A logical month representation. Depending on the usage, this <code class="computeroutput">months</code> object may cover a span of 28 to 31 days. The objects also use a snap to end-of-month behavior when used in conjunction with a date that is the last day of a given month. <span class="strong"><strong>WARNING: this behavior may lead to unexpected results.</strong></span> See: <a href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a> for complete details and alternatives.</td>
+</tr>
+<tr><td><pre class="screen">months single(1);
+date leap_year(2004,Jan,31);
+date norm_year(2005,Jan,31);
+leap_year + single; // =&gt; 2004-Feb-29
+norm_year + single; // =&gt; 2005-Feb-28
+date(2005,Jan,1) + single; // =&gt; 2005-Feb-01
+date(2005,Feb,1) + single; // =&gt; 2005-Mar-01
+date(2005,Feb,28) + single; // =&gt; 2005-Mar-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">years(int num_of_years)</pre></td>
+<td>A logical representation of a year. The <code class="computeroutput">years</code> object has the same behavior as the <code class="computeroutput">months</code> objects with regards to the end-of-the-month.</td>
+</tr>
+<tr><td><pre class="screen">years single(1);
+date(2003,Feb,28) + single;
+// results in =&gt; 2004-Feb-29
+date(2004,Feb,29) + single;
+// results in =&gt; 2005-Feb-28</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">weeks(int num_of_weeks)</pre></td>
+<td>A duration type representing a number of <code class="computeroutput">n * 7</code> days.</td>
+</tr>
+<tr><td><pre class="screen">weeks single(1);
+date(2005,Jan,1) + single; // =&gt; 2005-Jan-08</pre></td></tr>
+</tbody>
+</table></div>
+<p><a name="snap_to_details"></a></p>
+<h4>
+<a name="id999009"></a>Reversibility of Operations Pitfall</h4>
+<p>A natural expectation when adding a number of months to a date, and then subtracting the same number of months, is to end up exactly where you started. This is most often the result the <code class="computeroutput">date_time</code> library provides but there is one significant exception: The snap-to-end-of-month behavior implemented by the <a href="gregorian.html#additional_duration_types">months</a> duration type. The <a href="gregorian.html#additional_duration_types">months</a> duration type may provide unexpected results when the starting day is the 28th, 29th, or 30th in a 31 day month. The <a href="gregorian.html#iterators_intro">month_iterator</a> is not effected by this issue and is therefore included in the examples to illustrate a possible alternative.
+</p>
+<p>When the starting date is in the middle of a month, adding or subtracting any number of months will result in a date that is the same day of month (e.g. if you start on the 15th, you will end on the 15th). When a date is the last day of the month, adding or subtracting any number of months will give a result that is also the last day of the month (e.g if you start on Jan 31st, you will land on: Feb 28th, Mar 31st, etc).
+ </p>
+<pre class="programlisting">
+ // using months duration type
+ date d(2005, Nov, 30); // last day of November
+ d + months(1); // result is last day of December "2005-Dec-31"
+ d - months(1); // result is last day of October "2005-Oct-31"
+
+ // using month_iterator
+ month_iterator itr(d); // last day of November
+ ++itr; // result is last day of December "2005-Dec-31"
+ --itr; // back to original starting point "2005-Nov-30"
+ --itr; // last day of October "2005-Oct-31"
+ </pre>
+<p>If the start date is the 28th, 29th, or 30th in a 31 day month, the result of adding or subtracting a month may result in the snap-to-end-of-month behavior kicking in unexpectedly. This would cause the final result to be different that the starting date.
+ </p>
+<pre class="programlisting">
+ // using months duration type
+ date d(2005, Nov, 29);
+ d += months(1); // "2005-Dec-29"
+ d += months(1); // "2006-Jan-29"
+ d += months(1); // "2006-Feb-28" --&gt; snap-to-end-of-month behavior kicks in
+ d += months(1); // "2006-Mar-31" --&gt; unexpected result
+ d -= months(4); // "2005-Nov-30" --&gt; unexpected result, not where we started
+
+ // using month_iterator
+ month_iterator itr(date(2005, Dec, 30));
+ ++itr; // "2006-Jan-30" --&gt; ok
+ ++itr; // "2006-Feb-28" --&gt; snap-to DOES NOT kick in
+ ++itr; // "2006-Mar-30" --&gt; ok
+ --itr; // "2006-Feb-28" --&gt; ok
+ --itr; // "2006-Jan-30" --&gt; ok
+ --itr; // "2005-Dec-30" --&gt; ok, back where we started
+ </pre>
+<p>The additional duration types (<code class="computeroutput">months</code>, <code class="computeroutput">years</code>, and <code class="computeroutput">weeks</code>) are provided as a convenience and can be easily removed to insure this pitfall never occurs. To remove these types simply undefine BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.date_period"></a>Date Period</h4></div></div></div>
+<a href="gregorian.html#period_intro">Introduction</a> --
+ <a href="gregorian.html#period_header">Header</a> --
+ <a href="gregorian.html#period_construction">Construction</a> --
+ <a href="gregorian.html#period_accessors">Accessors</a> --
+ <a href="gregorian.html#period_convert_to_string">Convert to String</a> --
+ <a href="gregorian.html#period_operators">Operators</a><a name="period_intro"></a><h3>
+<a name="id999174"></a>Introduction</h3>
+<p>
+ The class boost::gregorian::date_period provides direct representation for ranges between two dates. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program. For example, testing if a date is within an irregular schedule such as a weekend or holiday can be accomplished using collections of date periods. This is facilitated by several methods that allow evaluation if a date_period intersects with another date period, and to generate the period resulting from the intersection. The <a href="examples.html#date_time.examples.date_period_calc" title="Date Period Calculations">date period calculation example</a> provides an example of this.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<p>
+ Date periods used in combination with infinity values have the ability to represent complex concepts such as 'until further notice'.
+ </p>
+<a name="period_header"></a><h3>
+<a name="id999217"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<a name="period_construction"></a><h3>
+<a name="id999235"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date, date)</pre></td>
+<td>Create a period as [begin, end). If end is &lt;= begin then the period will be invalid.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,10),
+ date(2002,Jan,12));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date, days)</pre></td>
+<td>Create a period as [begin, begin+len) where end point would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,10),
+ days(2));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period(date_period)</pre></td>
+<td> Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(dp);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="period_accessors"></a><h3>
+<a name="id999295"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date begin()</pre></td>
+<td> Return first day of period.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.begin() --&gt; 2002-Jan-01</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date last()</pre></td>
+<td>Return last date in the period</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.last() --&gt; 2002-Jan-09</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date end()</pre></td>
+<td>Return one past the last in period</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp.end() --&gt; 2002-Jan-10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days length()</pre></td>
+<td>Return the length of the date_period</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,1),
+ days(2));
+dp.length() --&gt; 2</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end less than or equal to begin.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp(date(2002,Jan,10),
+ date(2002,Jan,1));
+dp.begin() --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(date)</pre></td>
+<td>True if date is within the period. Zero length periods cannot contain any points</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+date_period dp(d, date(2002,Jan,10));
+dp.contains(date(2002,Jan,2));// true
+date_period dp2(d, d);
+dp.contains(date(2002,Jan,1));// false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(date_period)</pre></td>
+<td>True if date period is within the period</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp1.contains(dp2) --&gt; true
+dp2.contains(dp1) --&gt; false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(date_period)</pre></td>
+<td>True if periods overlap</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp2.intersects(dp1) --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period intersection(date_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,2),
+ date(2002,Jan,3));
+dp2.intersection(dp1) --&gt; dp2</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_adjacent(date_period)</pre></td>
+<td>Check if two periods are adjacent, but not overlapping.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,3));
+date_period dp2(date(2002,Jan,3),
+ date(2002,Jan,10));
+dp2.is_adjacent(dp1) --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_after(date)</pre></td>
+<td>Determine the period is after a given date.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,10),
+ date(2002,Jan,30));
+date d(2002,Jan,3);
+dp1.is_after(d) --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period is_before(date)</pre></td>
+<td>Determine the period is before a given date.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,3));
+date d(2002,Jan,10);
+dp1.is_before(d) --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period merge(date_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+date_period dp2(date(2002,Jan,9),
+ date(2002,Jan,31));
+dp2.merge(dp1)
+// 2002-Jan-01/2002-Jan-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period span(date_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end)</td>
+</tr>
+<tr><td><pre class="screen">
+date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,5));
+date_period dp2(date(2002,Jan,9),
+ date(2002,Jan,31));
+dp2.span(dp1); // 2002-Jan-01/2002-Jan-31</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_period shift(days)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td><pre class="screen">date_period dp1(date(2002,Jan,1),
+ date(2002,Jan,10));
+dp1.shift(days(1));
+// 2002-Jan-02/2002-Jan-11</pre></td></tr>
+</tbody>
+</table></div>
+<a name="period_convert_to_string"></a><h3>
+<a name="id999619"></a>Convert to String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(date_period dp)</pre></td>
+<td>To <code class="computeroutput">[YYYY-mmm-DD/YYYY-mmm-DD]</code> string where <code class="computeroutput">mmm</code> is 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01/2002-Jan-31]</pre></td></tr>
+</tbody>
+</table></div>
+<a name="period_operators"></a><h3>
+<a name="id999783"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>ostream operator for date_period. Uses facet to format time points. Typical output: [2002-Jan-01/2002-Jan-31].</td>
+</tr>
+<tr><td><pre class="screen">std::cout &lt;&lt; dp &lt;&lt; std::endl;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>istream operator for date_period. Uses facet to parse time points.</td>
+</tr>
+<tr><td><pre class="screen">"[2002-Jan-01/2002-Jan-31]"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dp1 == dp2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>True if dp1.end() less than dp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">dp1 &lt; dp2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>True if dp1.begin() greater than dp2.end()</td>
+</tr>
+<tr><td><pre class="screen">dp1 &gt; dp2, etc</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.date_iterators"></a>Date Iterators</h4></div></div></div>
+<a href="gregorian.html#iterators_intro">Introduction</a> --
+ <a href="gregorian.html#iterators_header">Header</a> --
+ <a href="gregorian.html#iterators_overview">Overview</a><a name="iterators_intro"></a><h3>
+<a name="id999954"></a>Introduction</h3>
+<p>
+ Date iterators provide a standard mechanism for iteration through dates. Date iterators are a model of <a href="http://www.sgi.com/tech/stl/BidirectionalIterator.html" target="_top">Bidirectional Iterator</a> and can be used to populate collections with dates and other date generation tasks. For example, the <a href="examples.html#date_time.examples.print_month" title="Print Month">print month</a> example iterates through all the days in a month and prints them.
+ </p>
+<p>
+ All of the iterators here derive from boost::gregorian::date_iterator.
+ </p>
+<a name="iterators_header"></a><h3>
+<a name="id999988"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<a name="iterators_overview"></a><h3>
+<a name="id1000006"></a>Overview</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_iterator</pre></td>
+<td>Common (abstract) base class for all day level iterators.</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">day_iterator(date start_date, int day_count=1)</pre></td>
+<td>Iterate <code class="computeroutput">day_count</code> days at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">day_iterator day_itr(date(2005,Jan,1));
+++d_itr; // 2005-Jan-02
+day_iterator 2day_itr(date(2005,Feb,1),2);
+++2d_itr; // 2005-Feb-03</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">week_iterator(...)
+ Parameters:
+ date start_date
+ int week_offset (defaults to 1)</pre></td>
+<td>Iterate <code class="computeroutput">week_offset</code> weeks at a time. This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">week_iterator wk_itr(date(2005,Jan,1));
+++wk_itr; // 2005-Jan-08
+week_iterator 2wk_itr(date(2005,Jan,1),2);
+++2wk_itr; // 2005-Feb-15</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">month_iterator(...)
+ Parameters:
+ date start_date
+ int month_offset (defaults to 1)</pre></td>
+<td>Iterate <code class="computeroutput">month_offset</code> months. There are special rules for handling the end of the month. These are: if start date is last day of the month, always adjust to last day of the month. If date is beyond the end of the month (e.g. Jan 31 + 1 month) adjust back to end of month (for more details and examples of this, see <a href="gregorian.html#snap_to_details">Reversibility of Operations Pitfall</a>. <span class="strong"><strong>NOTE:</strong></span> the <code class="computeroutput">month_iterator</code> is not effected by this pitfall.) This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">month_iterator m_itr(date(2005,Jan,1));
+++m_itr; // 2005-Feb-01
+month_iterator 2m_itr(date(2005,Feb,1),2);
+++2m_itr; // 2005-Apr-01</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_iterator(...)
+ Parameters:
+ date start_date
+ int year_offset (defaults to 1)</pre></td>
+<td>Iterate year_offset years. The year_iterator will always land on the day of the date parameter except when date is Feb 28 in a non-leap year. In this case the iterator will return Feb 29 for leap years (eg: 2003-Feb-28, 2004-Feb-29, 2005-Feb-28). This iterator does not provide postfix increment/decrement operators. Only prefix operators are provided.</td>
+</tr>
+<tr><td><pre class="screen">year_iterator y_itr(date(2005,Jan,1));
+++y_itr; // 2006-Jan-01
+year_iterator 2y_itr(date(2005,Feb,1),2);
+++2y_itr; // 2007-Feb-01</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.date_algorithms"></a>Date Generators/Algorithms</h4></div></div></div>
+<h2>
+<a name="id1000206"></a>Date Generators/Algorithms</h2>
+<a href="gregorian.html#algo_intro">Introduction</a> --
+ <a href="gregorian.html#algo_header">Header</a> --
+ <a href="gregorian.html#algo_overview">Class Overview</a> --
+ <a href="gregorian.html#algo_func_overview">Function Overview</a><a name="algo_intro"></a><h3>
+<a name="id1000248"></a>Introduction</h3>
+<p>
+ Date algorithms or generators are tools for generating other dates or schedules of dates. A generator function starts with some part of a date such as a month and day and is supplied another part to then generate a concrete date. This allows the programmer to represent concepts such as "The first Sunday in February" and then create a concrete set of dates when provided with one or more years.
+ <span class="emphasis"><em>Note</em></span>: As of boost version 1_31_0, date generator names have been changed. Old names are still available but are no longer documented and may someday be deprecated
+ </p>
+<p>Also provided are stand-alone functions for generating a date, or calculation a duration of days. These functions take a date object and a weekday object as parameters.
+ </p>
+<p>All date generator classes and functions are in the boost::gregorian namespace.
+ </p>
+<p>
+ The <a href="examples.html#date_time.examples.print_holidays" title="Print Holidays">print holidays</a> example shows a detailed usage example.
+ </p>
+<a name="algo_header"></a><h3>
+<a name="id1000292"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp"</pre>
+<a name="algo_overview"></a><h3>
+<a name="id1000308"></a>Overview</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Class and get_date Parameter</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">year_based_generator
+date get_date(greg_year year)</pre></td>
+<td>A unifying (abstract) date_generator base type for: <code class="computeroutput">partial_date</code>, <code class="computeroutput">nth_day_of_the_week_in_month</code>, <code class="computeroutput">first_day_of_the_week_in_month</code>, and <code class="computeroutput">last_day_of_the_week_in_month</code>.</td>
+</tr>
+<tr><td>The <a href="examples.html#date_time.examples.print_holidays" title="Print Holidays">print holidays</a> example shows a detailed usage example.</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">last_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Calculate something like last Monday of January</td>
+</tr>
+<tr><td><pre class="screen">last_day_of_the_week_in_month lwdm(Monday,Jan);
+date d = lwdm.get_date(2002);
+//2002-Jan-28</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_in_month(greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Calculate something like first Monday of January</td>
+</tr>
+<tr><td><pre class="screen">first_day_of_the_week_in_month fdm(Monday,Jan);
+date d = fdm.get_date(2002);
+//2002-Jan-07</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">nth_day_of_the_week_in_month(week_num,
+ greg_weekday,
+ greg_month)
+date get_date(greg_year year)</pre></td>
+<td>
+<code class="computeroutput">week_num</code> is a public enum member of <code class="computeroutput">nth_day_of_the_week_in_month</code>. Calculate something like first Monday of January, second Tuesday of March, Third Sunday of December, etc. (first through fifth are provided, fifth is the equivalent of last)</td>
+</tr>
+<tr><td><pre class="screen">typedef nth_day_of_the_week_in_month nth_dow;
+nth_dow ndm(nth_dow::third, Monday,Jan);
+date d = ndm.get_date(2002);
+//2002-Jan-21</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">partial_date(greg_day, greg_month)
+date get_date(greg_year year)</pre></td>
+<td>Generates a date by applying the year to the given month and day.</td>
+</tr>
+<tr><td><pre class="screen">partial_date pd(1,Jan);
+date d = pd.get_date(2002);
+//2002-Jan-01</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_after(greg_weekday)
+date get_date(date d)</pre></td>
+<td>Calculate something like First Sunday after Jan 1,2002</td>
+</tr>
+<tr><td><pre class="screen">first_day_of_the_week_after fdaf(Monday);
+date d = fdaf.get_date(date(2002,Jan,1));
+//2002-Jan-07</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">first_day_of_the_week_before(greg_weekday)
+date get_date(date d)</pre></td>
+<td>Calculate something like First Monday before Feb 1,2002</td>
+</tr>
+<tr><td><pre class="screen">first_day_of_the_week_before fdbf(Monday);
+date d = fdbf.get_date(date(2002,Feb,1));
+//2002-Jan-28</pre></td></tr>
+</tbody>
+</table></div>
+<a name="algo_func_overview"></a><h3>
+<a name="id1000541"></a>Function Overview</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Function Prototype</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days days_until_weekday date, greg_weekday)</pre></td>
+<td> Calculates the number of days from given date until given weekday.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_until_weekday(d, gw); // 3 days</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">days days_before_weekday(date, greg_weekday)</pre></td>
+<td> Calculates the number of day from given date to previous given weekday.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+days_before_weekday(d, gw); // 4 days</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date next_weekday(date, greg_weekday)</pre></td>
+<td> Generates a date object representing the date of the following weekday from the given date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+next_weekday(d, gw); // 2004-Jun-4</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date previous_weekday(date, greg_weekday)</pre></td>
+<td> Generates a date object representing the date of the previous weekday from the given date.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Jun,1); // Tuesday
+greg_weekday gw(Friday);
+previous_weekday(d, gw); // 2004-May-28</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.gregorian.gregorian_calendar"></a>Gregorian Calendar</h4></div></div></div>
+<a href="gregorian.html#gregcal_intro">Introduction</a> --
+ <a href="gregorian.html#gregcal_header">Header</a> --
+ <a href="gregorian.html#gregcal_functions">Functions</a><a name="gregcal_intro"></a><h3>
+<a name="id1000696"></a>Introduction</h3>
+<p>
+ The class boost::gregorian::gregorian_calendar implements the functions necessary to create the gregorian date system. It converts to the year-month-day form of a date to a day number representation and back.
+ </p>
+<p>
+ For most purposes this class is simply accessed by <a href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> and is not used directly by the user. However, there are useful functions that might be of use such as the end_of_month_day function.
+ </p>
+<p>
+ The <a href="examples.html#date_time.examples.print_month" title="Print Month">print month</a> example demonstrates this.
+ </p>
+<a name="gregcal_header"></a><h3>
+<a name="id1000734"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
+or
+#include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types</pre>
+<a name="gregcal_functions"></a><h3>
+<a name="id1000752"></a>Functions</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static short day_of_week(ymd_type)</pre></td>
+<td>Return the day of the week (0==Sunday, 1==Monday, etc)</td>
+</tr>
+<tr><td>See also <a href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> day_of_week</td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static date_int_type day_number(ymd_type)</pre></td>
+<td> Convert a ymd_type into a day number. The day number is an absolute number of days since the epoch start.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static short end_of_month_day(year_type,
+ month_type)</pre></td>
+<td>Given a year and month determine the last day of the month.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static ymd_type from_day_number(date_int_type)</pre></td>
+<td> Convert a day number to a ymd struct.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">static bool is_leap_year(year_type)</pre></td>
+<td>Returns true if specified year is a leap year.</td>
+</tr>
+<tr><td><pre class="screen">gregorian_calendar::is_leap_year(2000)
+//--&gt; true</pre></td></tr>
+</tbody>
+</table></div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples/general_usage_examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="posix_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/local_time.html b/doc/html/date_time/local_time.html
new file mode 100644
index 0000000000..f3f12a1a31
--- /dev/null
+++ b/doc/html/date_time/local_time.html
@@ -0,0 +1,1497 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Local Time</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="posix_time.html" title="Posix Time">
+<link rel="next" href="date_time_io.html" title="Date Time Input/Output">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="date_time_io.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="date_time.local_time"></a>Local Time</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.time_zone_base">Time Zone (abstract)</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.posix_time_zone">Posix Time Zone</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.tz_database">Time Zone Database</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.custom_time_zone">Custom Time Zone</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.local_date_time">Local Date Time</a></span></dt>
+<dt><span class="section"><a href="local_time.html#date_time.local_time.local_time_period">Local Time Period</a></span></dt>
+</dl></div>
+<h2>
+<a name="id1004892"></a>Local Time System</h2>
+<p><a href="local_time.html#local_intro">Introduction</a> --
+ <a href="local_time.html#local_ex">Usage Examples</a></p>
+<a name="local_intro"></a><h3>
+<a name="id1004917"></a>Introduction</h3>
+<p>
+ The library supports 4 main extensions for the management of local times. This includes
+ </p>
+<table class="simplelist" border="0" summary="Simple list">
+<tr><td>local_date_time -- locally adjusted time point</td></tr>
+<tr><td>posix_time_zone -- time zone defined by posix string (eg: "EST10EDT,M10.5.0,M3.5.0/03")</td></tr>
+<tr><td>time_zone_database -- get time zones by region from .csv file (eg: America/New York)</td></tr>
+<tr><td>time_zone -- abstract time zone interface</td></tr>
+</table>
+<p>
+ Together, these extensions define a time system adjusted for recording times related to a specific earth location. This time system utilizes all the features and benefits of the posix_time system (see <a href="posix_time.html" title="Posix Time">posix_time</a> for full details). It uses a time_zone object which contains all the necessary data/rules to enable adjustments to and from various time zones. The time_zone objects used in date_time are handled via a boost::shared_ptr&lt;boost::local_time::time_zone&gt;.
+ </p>
+<p>
+ The phrase "wall-clock" refers to the time that would be shown on a wall clock in a particular time zone at any point in time. Local_time uses a time zone object to account for differences in time zones and daylight savings adjustments. For example: While 5:00 pm, October 10, 2004 in Sydney Australia occurs at exactly the same instant as 3:00 am, October 10, 2004 in New York USA, it is a 14 hour difference in wall-clock times. However, a point in time just one day later will result in a 16 hour difference in wall-clock time due to daylight savings adjustments in both time zones. The local_time system tracks these by means of a time point, stored as UTC, and time_zone objects that contain all the necessary data to correctly calculate wall-clock times.
+ </p>
+<a name="local_ex"></a><h3>
+<a name="id1004956"></a>Usage Examples</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">Simple Time Zone</a></td>
+<td>Side by side examples of Time Zone usage. Both <span class="type">custom_time_zone</span> and <span class="type">posix_time_zone</span> are shown.</td>
+</tr>
+<tr>
+<td><a href="examples.html#date_time.examples.calc_rules" title="Daylight Savings Calc Rules">Daylight Savings Calc Rules</a></td>
+<td>Simple example showing the creation of all five <span class="type">dst_calc_rule</span> types.</td>
+</tr>
+<tr>
+<td><a href="examples.html#date_time.examples.seconds_since_epoch" title="Seconds Since Epoch">Seconds Since Epoch</a></td>
+<td>Example that calculates the total seconds elapsed since the epoch (1970-Jan-01) utilizing local_date_time.</td>
+</tr>
+</tbody>
+</table></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.time_zone_base"></a>Time Zone (abstract)</h4></div></div></div>
+<a href="local_time.html#time_zone_base_intro">Introduction</a> --
+ <a href="local_time.html#time_zone_base_header">Header</a> --
+ <a href="local_time.html#time_zone_base_constr">Construction</a> --
+ <a href="local_time.html#time_zone_base_accessors">Accessors</a><a name="time_zone_base_intro"></a><h3>
+<a name="id1005094"></a>Introduction</h3>
+<p>
+ The time_zone_base class is an abstract base class template for representing time zones. Time zones are a set of data and rules that provide information about a time zone. The date_time library handles time_zones by means of a boost::shared_ptr&lt;time_zone_base&gt;. A user's custom time zone class will work in the date_time library by means of this shared_ptr.
+ </p>
+<p>
+ For convienience, the time_zone_base class is typedef'd as time_zone. All references in the documentation to time_zone, are referring to this typedef.
+ </p>
+<a name="time_zone_base_header"></a><h3>
+<a name="id1005111"></a>Header</h3>
+<p>
+ The time_zone_base class is defined in the header:
+ </p>
+<pre class="programlisting">#include "boost/date_time/time_zone_base.hpp"
+ </pre>
+<a name="time_zone_base_constr"></a><h3>
+<a name="id1005129"></a>Construction</h3>
+<p>
+ A default constructor is provided in the time_zone_base class. There are no private data members in this base class to initialize.
+ </p>
+<p>
+ Template parameters are time_type (typically posix_time::ptime) and CharT (defaults to char).
+ </p>
+<a name="time_zone_base_accessors"></a><h3>
+<a name="id1005148"></a>Accessors</h3>
+<p>
+ All of the accessors listed here are pure virtual functions.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">
+string_type dst_zone_abbrev();</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type std_zone_abbrev();</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type dst_zone_name();</pre></td>
+<td>Returns the daylight savings name for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+string_type std_zone_name();</pre></td>
+<td>Returns the standard name for the represented time zone.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">bool has_dst();</pre></td>
+<td>Returns true if this time zone does not make a daylight savings shift.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_type dst_local_start_time(year_type);</pre></td>
+<td>The date and time daylight savings time begins in given year.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_type dst_local_end_time(year_type);</pre></td>
+<td valign="top">The date and time daylight savings time ends in given year.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_duration_type base_utc_offset();</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+time_duration_type dst_offset();</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">
+std::string to_posix_string();</pre></td>
+<td>Returns a posix time zone string representation of this time_zone_base object. For a detailed description of a posix time zone string see <a href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.posix_time_zone"></a>Posix Time Zone</h4></div></div></div>
+<a href="local_time.html#posix_time_zone_intro">Introduction</a> --
+ <a href="local_time.html#posix_time_zone_notes">Important Notes</a> --
+ <a href="local_time.html#posix_time_zone_header">Header</a> --
+ <a href="local_time.html#posix_time_zone_constr">Construction</a> --
+ <a href="local_time.html#posix_time_zone_accessors">Accessors</a><a name="posix_time_zone_intro"></a><h3>
+<a name="id1005364"></a>Introduction</h3>
+<p>
+ A posix_time_zone object is a set of data and rules that provide information about a time zone. Information such as the offset from UTC, it's name and abbreviation, as well as daylight savings rules, called <a href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rules</a>. These rules are stored as a boost::shared_ptr&lt;dst_calc_rules&gt;.
+ </p>
+<p>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</pre>
+<p>
+ A posix_time_zone is unique in that the object is created from a Posix time zone string (IEEE Std 1003.1). A POSIX time zone string takes the form of:
+ </p>
+<div class="literallayout"><p><br>
+      "std offset dst [offset],start[/time],end[/time]" (w/no spaces).</p></div>
+<p>'std' specifies the abbrev of the time zone. 'offset' is the offset from UTC. 'dst' specifies the abbrev of the time zone during daylight savings time. The second offset is how many hours changed during DST. 'start' and 'end' are the dates when DST goes into (and out of) effect. 'offset' takes the form of:
+ </p>
+<div class="literallayout"><p><br>
+      [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}</p></div>
+<p>'time' and 'offset' take the same form. 'start' and 'end' can be one of three forms:
+ </p>
+<div class="literallayout"><p><br>
+      Mm.w.d {month=1-12, week=1-5 (5 is always last), day=0-6} <br>
+      Jn {n=1-365 Feb29 is never counted} <br>
+      n {n=0-365 Feb29 is counted in leap years}</p></div>
+<p>
+ Exceptions will be thrown under the following conditions:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>An exception will be thrown for an invalid date spec (see <a href="gregorian.html#date_time.gregorian.date_class" title="Date">date class</a>).</li>
+<li>A boost::local_time::bad_offset exception will be thrown for:</li>
+<li>A DST start or end offset that is negative or more than 24 hours.</li>
+<li>A UTC zone that is greater than +12 or less than -12 hours.</li>
+<li>A boost::local_time::bad_adjustment exception will be thrown for a DST adjustment that is 24 hours or more (positive or negative)</li>
+</ul></div>
+<p>As stated above, the 'offset' and '/time' portions of the string are not required. If they are not given they default to 01:00 for 'offset', and 02:00 for both occurrences of '/time'.
+ </p>
+<p>
+ Some examples are:
+ </p>
+<div class="literallayout"><p><br>
+      "PST-8PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"<br>
+      "PST-8PDT,M4.1.0,M10.1.0"</p></div>
+<p>These two are actually the same specification (defaults were used in the second string). This zone lies eight hours west of GMT and makes a one hour shift forward during daylight savings time. Daylight savings for this zone starts on the first Sunday of April at 2am, and ends on the first Sunday of October at 2am.
+ </p>
+<div class="literallayout"><p><br>
+      "MST-7"</p></div>
+<p>This zone is as simple as it gets. This zone lies seven hours west of GMT and has no daylight savings.
+ </p>
+<div class="literallayout"><p><br>
+      "EST10EDT,M10.5.0,M3.5.0/03"</p></div>
+<p>This string describes the time zone for Sydney Australia. It lies ten hours east of GMT and makes a one hour shift forward during daylight savings. Being located in the southern hemisphere, daylight savings begins on the last Sunday in October at 2am and ends on the last Sunday in March at 3am.
+ </p>
+<div class="literallayout"><p><br>
+      "FST+3FDT02:00,J60/00,J304/02"</p></div>
+<p>This specification describes a fictitious zone that lies three hours east of GMT. It makes a two hour shift forward for daylight savings which begins on March 1st at midnight, and ends on October 31st at 2am. The 'J' designation in the start/end specs signifies that counting starts at one and February 29th is never counted.
+ </p>
+<div class="literallayout"><p><br>
+      "FST+3FDT,59,304"</p></div>
+<p>This specification is significant because of the '59'. The lack of 'J' for the start and end dates, indicates that the Julian day-count begins at zero and ends at 365. If you do the math, you'll see that allows for a total of 366 days. This is fine in leap years, but in non-leap years '59' (Feb-29) does not exist. This will construct a valid posix_time_zone object but an exception will be thrown if the date of '59' is accessed in a non-leap year. Ex:
+ </p>
+<pre class="programlisting">posix_time_zone leap_day(std::string("FST+3FDT,59,304"));
+leap_day.dst_local_start_time(2004); // ok
+leap_day.dst_local_start_time(2003); // Exception thrown</pre>
+<p>
+ The posix_time_zone objects are used via a boost::shared_ptr&lt;local_time::time_zone_base&gt;. As a convenience, a typedef for boost::shared_ptr&lt;local_time::time_zone_base&gt; is provided:
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;time_zone_base&gt; local_time::time_zone_ptr;</pre>
+<p>
+ See <a href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">Simple time zone</a> for a side by side example of time_zone and posix_time_zone usage.
+ </p>
+<a name="posix_time_zone_notes"></a><h3>
+<a name="id1005580"></a>Important Notes</h3>
+<div class="itemizedlist"><ul type="disc">
+<li>posix_time_zone objects use the standard and daylight savings abbreviations in place of the full names (see <a href="local_time.html#posix_time_zone_accessors">Accessors</a> below).</li>
+<li>'Jn' and 'n' date specifications can not be mixed in a specification string. Ex: "FST+3FDT,59,J304" </li>
+<li>'n' date specification of 59 represents Feb-29. Do not attempt to access in a non-leap year or an exception will be thrown.</li>
+</ul></div>
+<a name="posix_time_zone_header"></a><h3>
+<a name="id1005610"></a>Header</h3>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"</pre>
+<a name="posix_time_zone_constr"></a><h3>
+<a name="id1005629"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">posix_time_zone(std::string)</pre></td>
+<td><pre class="screen">std::string nyc("EST-5EDT,M4.1.0,M10.5.0");
+time_zone_ptr zone(new posix_time_zone(nyc));</pre></td>
+</tr></tbody>
+</table></div>
+<a name="posix_time_zone_accessors"></a><h3>
+<a name="id1005670"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_abbrev(); // "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_abbrev(); // "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings ABBREVIATION for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_name(); // "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard ABBREVIATION for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_name(); // "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool has_dst()</pre></td>
+<td>Returns true when time_zone's shared_ptr to dst_calc_rules is not NULL.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;has_dst(); // true
+phx_zone_sh_ptr-&gt;has_dst(); // false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+ptime dst_local_start_time(greg_year)</pre></td>
+<td>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_local_start_time(2004);
+// 2004-Apr-04 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+ptime dst_local_end_time(greg_year)</pre></td>
+<td>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_local_end_time(2004);
+// 2004-Oct-31 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">
+time_duration base_utc_offset()</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;base_utc_offset(); // -05:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">posix_time::time_duration dst_offset()</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_offset(); // 01:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_posix_string()</pre></td>
+<td>Returns a posix time zone string representation of this time_zone_base object. Depending on how the time_zone object was created, the date-spec format of the string will be in either 'M' notation or 'n' notation. Every possible date-spec that can be represented in 'J' notation can also be represented in 'n' notation. The reverse is not true so only 'n' notation is used for these types of date-specs. For a detailed description of a posix time zone string see <a href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;to_posix_string();
+// "EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"
+phx_zone_sh_ptr-&gt;to_posix_string();
+// "MST-07"
+ </pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.tz_database"></a>Time Zone Database</h4></div></div></div>
+<a href="local_time.html#tz_database_intro">Introduction</a> --
+ <a href="local_time.html#tz_database_header">Header</a> --
+ <a href="local_time.html#tz_database_constr">Construction</a> --
+ <a href="local_time.html#tz_database_accessors">Accessors</a> --
+ <a href="local_time.html#tz_database_datafile">Data File Details</a><a name="tz_database_intro"></a><h3>
+<a name="id1006003"></a>Introduction</h3>
+<p>
+ The local_time system depends on the ability to store time zone information. Our Time Zone Database (tz_database) is a means of permanently storing that data. The specifications for many time zones (377 at this time) are provided. These specifications are based on data found in the <a href="http://www.twinsun.com/tz/tz-link.htm" target="_top">zoneinfo datebase</a>. The specifications are stored in the file:</p>
+<pre class="screen">libs/date_time/data/date_time_zonespec.csv</pre>
+<p>. While this file already contains specifications for many time zones, it's real intent is for the user to modify it by adding (or removing) time zones to fit their application. See <a href="local_time.html#tz_database_datafile">Data File Details</a> to learn how this is accomplished.
+ </p>
+<a name="tz_database_header"></a><h3>
+<a name="id1006044"></a>Header</h3>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"
+ </pre>
+<a name="tz_database_constr"></a><h3>
+<a name="id1006064"></a>Construction</h3>
+<p>
+ The only constructor takes no arguments and creates an empty database. It is up to the user to populate the database. This is typically achieved by loading the desired datafile, but can also be accomplished by means of the <code class="computeroutput">add_record(...)</code> function (see the <a href="local_time.html#tz_database_accessors">Accessors table</a>). A <code class="computeroutput">local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code class="computeroutput">local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tz_database()</pre></td>
+<td>Constructor creates an empty database.</td>
+</tr>
+<tr><td><pre class="screen">tz_database tz_db;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool load_from_file(std::string)</pre></td>
+<td>Parameter is path to a time zone spec csv file (see <a href="local_time.html#tz_database_datafile">Data File Details</a> for details on the contents of this file). This function populates the database with time zone records found in the zone spec file. A <code class="computeroutput">local_time::data_not_accessible</code> exception will be thrown if given zonespec file cannot be found. <code class="computeroutput">local_time::bad_field_count</code> exception will be thrown if the number of fields in given zonespec file is incorrect.</td>
+</tr>
+<tr><td><pre class="screen">tz_database tz_db;
+tz_db.load_from_file("./date_time_zonespec.csv");</pre></td></tr>
+</tbody>
+</table></div>
+<a name="tz_database_accessors"></a><h3>
+<a name="id1006193"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool tz_db.add_record(std::string id,
+ <a href="local_time.html#date_time.local_time.custom_time_zone_ptr">time_zone_ptr</a> tz);</pre></td>
+<td>Adds a time_zone, or a posix_time_zone, to the database. ID is the region name for this zone (Ex: "America/Phoenix").</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("PST-8PDT,M4.1.0,M10.1.0")
+);
+std::string id("America/West_Coast");
+tz_db.add_record(id, zone);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_ptr
+ tz_db.time_zone_from_region(string id);</pre></td>
+<td>Returns a time_zone, via a time_zone_ptr, that matches the region listed in the data file. A null pointer is returned if no match is found.
+ </td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr nyc =
+ tz_db.time_zone_from_region("America/New_York");</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">vector&lt;string&gt; tz_db.region_list();</pre></td>
+<td>Returns a vector of strings that holds all the region ID strings from the database.</td>
+</tr>
+<tr><td><pre class="screen">std::vector&lt;std::string&gt; regions;
+regions = tz_db.region_list();</pre></td></tr>
+</tbody>
+</table></div>
+<a name="tz_database_datafile"></a><h3>
+<a name="id1006307"></a>Data File Details</h3>
+<a href="local_time.html#tz_database_fields">Field Description/Details</a><p>
+ The csv file containing the zone_specs used by the boost::local_time::tz_database is intended to be customized by the library user. When customizing this file (or creating your own) the file must follow a specific format.
+ </p>
+<p>
+ This first line is expected to contain column headings and is therefore
+not processed by the tz_database.
+ </p>
+<p>
+ Each record (line) must have eleven fields. Some of those fields can be empty. Every field (even empty ones) must be enclosed in double-quotes.
+ </p>
+<div class="literallayout"><p><br>
+      Ex:<br>
+      "America/Phoenix" &lt;- string enclosed in quotes<br>
+      ""                &lt;- empty field<br>
+    </p></div>
+<p>
+ Some fields represent a length of time. The format of these fields must be:
+ </p>
+<div class="literallayout"><p><br>
+      "{+|-}hh:mm[:ss]" &lt;- length-of-time format<br>
+    </p></div>
+<p>
+ Where the plus or minus is mandatory and the seconds are optional.
+ </p>
+<p>
+ Since some time zones do not use daylight savings it is not always necessary for every field in a zone_spec to contain a value. All zone_specs must have at least ID and GMT offset. Zones that use daylight savings must have all fields filled except: STD ABBR, STD NAME, DST NAME. You should take note that DST ABBR is mandatory for zones that use daylight savings (see field descriptions for further details).
+ </p>
+<a name="tz_database_fields"></a><h3>
+<a name="id1006375"></a>Field Description/Details</h3>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ ID
+ <p>
+ Contains the identifying string for the zone_spec. Any string will do as long as it's unique. No two ID's can be the same.
+ </p>
+</li>
+<li>
+ STD ABBR
+ </li>
+<li>
+ STD NAME
+ </li>
+<li>
+ DST ABBR
+ </li>
+<li>
+ DST NAME
+ <p>
+ These four are all the names and abbreviations used by the time zone being described. While any string will do in these fields, care should be taken. These fields hold the strings that will be used in the output of many of the local_time classes.
+ </p>
+</li>
+<li>
+ GMT offset
+ <p>
+ This is the number of hours added to utc to get the local time before any daylight savings adjustments are made. Some examples are: America/New_York offset -5 hours, and Africa/Cairo offset +2 hours. The format must follow the length-of-time format described above.
+ </p>
+</li>
+<li>
+ DST adjustment
+ <p>
+ The amount of time added to gmt_offset when daylight savings is in effect. The format must follow the length-of-time format described above.
+ </p>
+<p>
+ NOTE: more rule capabilities are needed - this portion of the tz_database is incomplete
+ </p>
+</li>
+<li>
+ DST Start Date rule
+ <p>
+ This is a specially formatted string that describes the day of year in which the transition take place. It holds three fields of it's own, separated by semicolons.
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ The first field indicates the "nth" weekday of the month. The possible values are: 1 (first), 2 (second), 3 (third), 4 (fourth), 5 (fifth), and -1 (last).
+ </li>
+<li>
+ The second field indicates the day-of-week from 0-6 (Sun=0).
+ </li>
+<li>
+ The third field indicates the month from 1-12 (Jan=1).
+ </li>
+</ol></div>
+<p>
+ Examples are: "-1;5;9"="Last Friday of September", "2;1;3"="Second Monday of March"
+ </p>
+</li>
+<li>
+ Start time
+ <p>
+ Start time is the number of hours past midnight, on the day of the start transition, the transition takes place. More simply put, the time of day the transition is made (in 24 hours format). The format must follow the length-of-time format described above with the exception that it must always be positive.
+ </p>
+</li>
+<li>
+ DST End date rule
+ <p>
+ See DST Start date rule. The difference here is this is the day daylight savings ends (transition to STD).
+ </p>
+</li>
+<li>
+ End time
+ <p>
+ Same as Start time.
+ </p>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.custom_time_zone"></a>Custom Time Zone</h4></div></div></div>
+<a href="local_time.html#custom_time_zone_intro">Introduction</a> --
+ <a href="local_time.html#custom_time_zone_header">Header</a> --
+ <a href="local_time.html#custom_time_zone_constr">Construction</a> --
+ <a href="local_time.html#custom_time_zone_accessors">Accessors</a> --
+ <a href="local_time.html#custom_time_zone_dependents">Dependent Types</a><a name="custom_time_zone_intro"></a><h3>
+<a name="id1006541"></a>Introduction</h3>
+<p>
+ A custom_time_zone object is a set of data and rules that provide information about a time zone. Information such as the offset from UTC, it's name and abbreviation, as well as daylight savings rules, called <a href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rules</a>. These rules are handled via a boost::shared_ptr&lt;dst_calc_rules&gt;. Not all time zones utilize daylight savings, therefore, time_zone objects can be used with a NULL-assigned shared_ptr.
+ </p>
+<p>
+ As a convenience, a typedef for shared_ptr&lt;dst_calc_rules&gt; is provided.
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;dst_calc_rules&gt; local_time::dst_calc_rule_ptr;</pre>
+<a name="date_time.local_time.custom_time_zone_ptr"></a><p>
+ The time_zone objects are used via a boost::shared_ptr&lt;local_time::time_zone&gt;. As a convenience, a typedef for boost::shared_ptr&lt;local_time::time_zone&gt; is provided:
+ </p>
+<pre class="programlisting">typedef boost::shared_ptr&lt;time_zone&gt; local_time::time_zone_ptr;</pre>
+<a name="custom_time_zone_header"></a><h3>
+<a name="id1006605"></a>Header</h3>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types, functions, and IO operators.
+ </p>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp"</pre>
+<a name="custom_time_zone_constr"></a><h3>
+<a name="id1006624"></a>Construction</h3>
+<p>
+ Construction of a custom_time_zone is dependent on four objects: a
+ <a href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a>, a <a href="local_time.html#time_zone_names">time_zone_names</a>, a <a href="local_time.html#dst_adjustment_offsets">dst_adjustment_offsets</a>, and a shared_ptr to a <a href="local_time.html#date_time.local_time.dst_calc_rules">dst_calc_rule</a>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody><tr>
+<td valign="top"><pre class="screen">custom_time_zone(...)
+ Parameters:
+ <a href="local_time.html#time_zone_names">names</a>,
+ <a href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">gmt_offset</a>,
+ <a href="local_time.html#dst_adjustment_offsets">dst_offsets</a>,
+ <a href="local_time.html#date_time.local_time.dst_calc_rules">dst_rules</a></pre></td>
+<td>See <a href="examples.html#date_time.examples.simple_time_zone" title="Simple Time Zones">simple_time_zone</a> example for time_zone usage</td>
+</tr></tbody>
+</table></div>
+<a name="custom_time_zone_accessors"></a><h3>
+<a name="id1006736"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_abbrev();
+// "EDT"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard abbreviation for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_abbrev();
+// "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings name for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_zone_name();
+// "Eastern Daylight Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard name for the represented time zone.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;std_zone_name();
+// "Eastern Standard Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool has_dst()</pre></td>
+<td>Returns true when custom_time_zone's shared_ptr to dst_calc_rules is not NULL.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;has_dst();
+// true
+phx_zone_sh_ptr-&gt;has_dst();
+// false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_local_start_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</pre></td>
+<td>The date and time daylight savings time begins in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;dst_local_start_time(2004);
+// 2004-Apr-04 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_local_end_time(...)
+ Return Type:
+ ptime
+ Parameter:
+ greg_year</pre></td>
+<td>The date and time daylight savings time ends in given year. Returns not_a_date_time if this zone has no daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;dst_local_end_time(2004);
+// 2004-Oct-31 02:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration base_utc_offset()</pre></td>
+<td>The amount of time offset from UTC (typically in hours).</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;base_utc_offset();
+// -05:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration dst_offset()</pre></td>
+<td>The amount of time shifted during daylight savings.</td>
+</tr>
+<tr><td><pre class="screen">nyc_zone_sh_ptr-&gt;dst_offset();
+// 01:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_posix_string()</pre></td>
+<td>Returns a posix time zone string representation of this time_zone object. Depending on how the time_zone object was created, the date-spec format of the string will be in either 'M' notation or 'n' notation. Every possible date-spec that can be represented in 'J' notation can also be represented in 'n' notation. The reverse is not true so only 'n' notation is used for these types of date-specs. For a detailed description of a posix time zone string see <a href="local_time.html#date_time.local_time.posix_time_zone" title="Posix Time Zone">posix_time_zone</a>.</td>
+</tr>
+<tr><td><pre class="screen">nyc_ptr-&gt;to_posix_string();
+// "EST-05EDT+01,M4.1.0/02:00,M10.5.0/02:00"
+phx_ptr-&gt;to_posix_string();
+// "MST-07"
+ </pre></td></tr>
+</tbody>
+</table></div>
+<a name="custom_time_zone_dependents"></a><h3>
+<a name="id1007013"></a>Dependent Types</h3>
+<a href="local_time.html#time_zone_names">Time Zone Names</a> --
+ <a href="local_time.html#dst_adjustment_offsets">Dst Adjustment Offsets</a> --
+ <a href="local_time.html#date_time.local_time.dst_calc_rules">Daylight Savings Calc Rules</a><a name="time_zone_names"></a><h3>
+<a name="id1007043"></a>Time Zone Names</h3>
+<p>
+ The time_zone_names_base type is an immutable template class of four strings. One each for the name and abbreviation in standard time and daylight savings time. The time_zone_names type is a typedef of time_zone_names_base&lt;char&gt;.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_names(...)
+ Parameters:
+ string std_name
+ string std_abbrev
+ string dst_name
+ string dst_abbrev</pre></td>
+<td>The only constructor, all four strings must be provided.</td>
+</tr>
+<tr><td><pre class="screen">string sn("Eastern Standard Time");
+string sa("EST");
+string dn("Eastern Daylight Time");
+string da("EDT");
+time_zone_names nyc_names(sn, sa,
+ dn, da);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_name()</pre></td>
+<td>Returns the standard zone name</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_name();
+// "Eastern Standard Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string std_zone_abbrev()</pre></td>
+<td>Returns the standard zone abbreviation</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_abbrev();
+// "EST"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_name()</pre></td>
+<td>Returns the daylight savings zone name</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_name();
+// "Eastern Daylight Time"</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string dst_zone_abbrev()</pre></td>
+<td>Returns the daylight savings zone abbreviation</td>
+</tr>
+<tr><td><pre class="screen">nyc_names.std_zone_abbrev();
+// "EDT"</pre></td></tr>
+</tbody>
+</table></div>
+<a name="dst_adjustment_offsets"></a><h3>
+<a name="id1007050"></a>Dst Adjustment Offsets</h3>
+<p>
+ The dst_adjustment_offsets type is a collection of three <a href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a> objects.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">dst_adjustment_offsets(...)
+ Parameters:
+ time_duration dst_adjust
+ time_duration start_offset
+ time_duration end_offset</pre></td>
+<td>The first time_duration is the daylight savings adjustment. The second is the time which daylight savings starts on the start day. The third is the time daylight savings ends on the ending day.</td>
+</tr>
+<tr><td><pre class="screen">
+dst_adjustment_offsets(hours(1),
+ hours(2),
+ hours(2));</pre></td></tr>
+</tbody>
+</table></div>
+<a name="date_time.local_time.dst_calc_rules"></a><h3>
+<a name="id1007265"></a>Daylight Savings Calc Rules</h3>
+<p>
+ Daylight savings calc rules, named dst_calc_rules, are a series of objects that group appropriate <a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">date_generators</a> together to form rule sets. The individual rules objects are used via dst_calc_rule_ptr.
+ </p>
+<p>
+ For a complete example of all five dst_calc_rule types, see: <a href="examples.html#date_time.examples.calc_rules" title="Daylight Savings Calc Rules">calc_rules example</a>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">partial_date_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>Both the start and end rules are of type gregorian::partial_date.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">first_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>The DST start rule is of type gregorian::first_day_of_the_week_in_month and the end rule is of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">last_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>Both the start and end rules are of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">nth_last_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule</pre></td>
+<td>The DST start rule is of type gregorian::nth_day_of_the_week_in_month and the end rule is of type gregorian::last_day_of_the_week_in_month.</td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">nth_kday_dst_rule(...)
+ Parameters:
+ start_rule
+ end_rule)
+(see note* below)</pre></td>
+<td>Both rules are of type gregorian::nth_day_of_the_week_in_month.</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ * Note: The name "nth_kday_dst_rule" is a bit cryptic. Therefore, a more descriptive name, "nth_day_of_the_week_in_month_dst_rule", is also provided.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.local_date_time"></a>Local Date Time</h4></div></div></div>
+<a href="local_time.html#local_date_time_intro">Introduction</a> --
+ <a href="local_time.html#local_date_time_header">Header</a> --
+ <a href="local_time.html#local_date_time_clock_constr">Construct From Clock</a> --
+ <a href="local_time.html#local_date_time_constr">Construction</a> --
+ <a href="local_time.html#local_date_time_accessors">Accessors</a> --
+ <a href="local_time.html#local_date_time_operators">Operators</a> --
+ <a href="local_time.html#local_date_time_tm_func">Struct tm Functions</a><a name="local_date_time_intro"></a><h3>
+<a name="id1007459"></a>Introduction</h3>
+<p>
+ A local_date_time object is a point in time and an associated time zone. The time is represented internally as UTC.
+ </p>
+<a name="local_date_time_header"></a><h3>
+<a name="id1007474"></a>Header</h3>
+<p>
+ The inclusion of a single header will bring in all boost::local_time types,
+functions, and IO operators.
+ </p>
+<pre class="programlisting">
+ #include "boost/date_time/local_time/local_time.hpp"
+ </pre>
+<a name="local_date_time_clock_constr"></a><h3>
+<a name="id1007494"></a>Construct From Clock</h3>
+<p>
+ Creation of a local_date_time object from clock is possible with either second, or sub second resolution.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Syntax</th>
+<th>Example</th>
+</tr></thead>
+<tbody>
+<tr>
+<td valign="top"><pre class="screen">local_microsec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</pre></td>
+<td><pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_microsec_clock::local_time(
+ zone);</pre></td>
+</tr>
+<tr>
+<td valign="top"><pre class="screen">local_sec_clock(...)
+ Return Type:
+ local_date_time
+ Parameter:
+ time_zone_ptr</pre></td>
+<td><pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time ldt =
+ local_sec_clock::local_time(zone);</pre></td>
+</tr>
+</tbody>
+</table></div>
+<a name="local_date_time_constr"></a><h3>
+<a name="id1007558"></a>Construction</h3>
+<p>
+ Construction of a local_date_time object can be done with a ptime and a time_zone_ptr where the ptime represents UTC time. Construction with a wall-clock representation takes the form of a date, a time_duration, a time_zone_ptr, and a fourth parameter that addresses the following complication.
+ </p>
+<p>
+ Construction from a wall-clock rep may result in differing shifts for a particular time zone, depending on daylight savings rules for that zone. This means it is also possible to create a local_date_time with a non-existent, or duplicated, UTC representation. These cases occur during the forward shift in time that is the transition into daylight savings and during the backward shift that is the transition out of daylight savings. The user has two options for handling these cases: a bool flag that states if the time is daylight savings, or an enum that states what to do when either of these cases are encountered.
+ </p>
+<p>
+ The bool flag is ignored when the given time_zone has no daylight savings specification. When the daylight savings status of a given time label is calculated and it does not match the flag, a <code class="computeroutput">local_time::dst_not_valid</code> exception is thrown. If a time label is invalid (does not exist), a <code class="computeroutput">local_time::time_label_invalid</code> exception is thrown.
+ </p>
+<p>
+ There are two elements in the <code class="computeroutput">local_date_time::DST_CALC_OPTIONS</code> enum: <code class="computeroutput">EXCEPTION_ON_ERROR</code> and <code class="computeroutput">NOT_DATE_TIME_ON_ERROR</code>. The possible exceptions thrown are a <code class="computeroutput">local_time::ambiguous_result</code> or a <code class="computeroutput">local_time::time_label_invalid</code>. The <code class="computeroutput">NOT_DATE_TIME_ON_ERROR</code> sets the time value to the special value <code class="computeroutput">local_time::not_a_date_time</code> in the event of either a invalid or an ambiguous time label.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ posix_time::ptime
+ time_zone_ptr</pre></td>
+<td>The given time is expected to be UTC. Therefore, the given time will be adjusted according to the offset described in the time zone.</td>
+</tr>
+<tr><td><pre class="screen">
+// 3am, 2004-Nov-05 local time
+ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ bool</pre></td>
+<td>The passed time information understood to be in the passed tz. The DST flag must be passed to indicate whether the time is in daylight savings or not. May throw a <code class="computeroutput">dst_not_valid</code> or <code class="computeroutput">time_label_invalid</code> exception.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Nov,5);
+time_duration td(5,0,0,0);
+string z("PST-8PDT,M4.1.0,M10.1.0")
+time_zone_ptr zone(
+ new posix_time_zone(z));
+local_date_time nyc(d, td,
+ zone, false);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ date
+ time_duration
+ time_zone_ptr
+ DST_CALC_OPTIONS</pre></td>
+<td>The passed time information understood to be in the passed tz. The DST flag is calculated according to the specified rule. May throw a <code class="computeroutput">ambiguous_result</code> or <code class="computeroutput">time_label_invalid</code> exception.</td>
+</tr>
+<tr><td><pre class="screen">date d(2004,Nov,5);
+time_duration td(5,0,0,0);
+string z("PST-8PDT,M4.1.0,M10.1.0")
+time_zone_ptr zone(
+ new posix_time_zone(z));
+local_date_time nyc(d, td, zone,
+ NOT_DATE_TIME_ON_ERROR);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(local_date_time);</pre></td>
+<td>Copy Constructor.</td>
+</tr>
+<tr><td><pre class="screen">local_date_time az_2(az);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time(...)
+ Parameters:
+ special_values
+ time_zone_ptr</pre></td>
+<td>Special Values constructor.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr zone(
+ new posix_time_zone("MST-07")
+);
+local_date_time nadt(not_a_date_time,
+ zone);
+// default NULL time_zone_ptr
+local_date_time nadt(pos_infin);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_date_time_accessors"></a><h3>
+<a name="id1007811"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_zone_ptr zone()</pre></td>
+<td>Returns associated time_zone object via a time_zone_ptr</td>
+</tr>
+<tr><td><pre class="screen"></pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_dst()</pre></td>
+<td>Determines if time value is in DST for associated zone.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime utc_time()</pre></td>
+<td>Converts the local time value to a UTC value.</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);
+az.utc_time(); // 10am 2004-Nov-5</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime local_time()</pre></td>
+<td>Returns the local time for this object (Wall-clock).</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(date(2004,Nov,5),
+ hours(10));
+time_zone_ptr zone(
+ new posix_time_zone("MST-07"));
+local_date_time az(pt, zone);
+az.utc_time(); // 10am 2004-Nov-5
+az.local_time(); // 3am 2004-Nov-5</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_in(...)
+ Return Type:
+ local_date_time
+ Parameters:
+ time_zone_ptr
+ time_duration</pre></td>
+<td>Returns a local_date_time representing the same UTC time as calling object, plus optional time_duration, with given time zone.</td>
+</tr>
+<tr><td><pre class="screen">local_date_time nyc = az.local_time_in(nyc_zone);
+// nyc == 7am 2004-Nov-5</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if local_date_time is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(pos_infin);
+ldt.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if local_date_time is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(neg_infin);
+ldt.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if local_date_time is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(neg_infin);
+ldt.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a date</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(not_a_date_time);
+ldt.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if local_date_time is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">local_date_time ldt(pos_infin);
+local_date_time ldt2(not_a_date_time);
+time_zone_ptr
+ mst(new posix_time_zone("MST-07"));
+local_date_time
+ ldt3(local_sec_clock::local_time(mst));
+ldt.is_special(); // --&gt; true
+ldt2.is_special(); // --&gt; true
+ldt3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_date_time_operators"></a><h3>
+<a name="id1008058"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Output streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a>. The default output is shown in this example.</td>
+</tr>
+<tr><td><pre class="screen">
+time_zone_ptr zone(new posix_time_zone("MST-07");
+local_date_time ldt(date(2005,Jul,4),
+ hours(20),
+ false);
+std::cout &lt;&lt; ldt &lt;&lt; std::endl;
+// "2005-Jul-04 20:00:00 MST"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Input streaming operator. This operator is part of the v1.33 IO addition to date_time. For complete details on this feature see <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO</a>. At this time, <code class="computeroutput">local_date_time</code> objects can only be streamed in with a Posix Time Zone string. A complete description of a Posix Time Zone string can be found in the documentation for the <a href="local_time.html#posix_time_zone_intro">posix_time_zone</a> class.</td>
+</tr>
+<tr><td><pre class="screen">stringstream ss;
+ss.str("2005-Jul-04 20:00:00 MST-07");
+ss &gt;&gt; ldt;
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">ldt1 == ldt2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator+, operator+=,
+operator-, operator-=</pre></td>
+<td>Addition, subtraction, and shortcut operators for <code class="computeroutput">local_date_time</code> and date duration types. These include: <code class="computeroutput">days</code>, <code class="computeroutput">months</code>, and <code class="computeroutput">years</code>.</td>
+</tr>
+<tr><td><pre class="screen">ldt + days(5), etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator+, operator+=,
+operator-, operator-=</pre></td>
+<td>Addition, subtraction, and shortcut operators for <code class="computeroutput">local_date_time</code> and <code class="computeroutput">time_duration</code>.</td>
+</tr>
+<tr><td><pre class="screen">ldt + hours(5), etc</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_date_time_tm_func"></a><h3>
+<a name="id1008189"></a>Struct tm Functions</h3>
+<p>Function for converting a <code class="computeroutput">local_date_time</code> object to a <code class="computeroutput">tm</code> struct is provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(local_date_time)</pre></td>
+<td>A function for converting a <code class="computeroutput">local_date_time</code> object to a <code class="computeroutput">tm</code> struct.</td>
+</tr>
+<tr><td><pre class="screen">
+// 6am, 2005-Jul-05 local time
+std::string z("EST-05EDT,M4.1.0,M10.1.0");
+ptime pt(date(2005,Jul,5),
+ hours(10));
+time_zone_ptr zone( new posix_time_zone(z));
+local_date_time ldt(pt, zone);
+tm ldt_tm = to_tm(ldt);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 6
+ tm_mday =&gt; 5
+ tm_wday =&gt; 2 (Tuesday)
+ tm_yday =&gt; 185
+ tm_hour =&gt; 6
+ tm_min =&gt; 0
+ tm_sec =&gt; 0
+ tm_isddst =&gt; 1 */</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.local_time.local_time_period"></a>Local Time Period</h4></div></div></div>
+<a href="local_time.html#local_time_period_intro">Introduction</a> --
+ <a href="local_time.html#local_time_period_header">Header</a> --
+ <a href="local_time.html#local_time_period_constr">Construction</a> --
+ <a href="local_time.html#local_time_period_accessors">Accessors</a> --
+ <a href="local_time.html#local_time_period_operators">Operators</a><a name="local_time_period_intro"></a><h3>
+<a name="id1008424"></a>Introduction</h3>
+<p>
+ The class <code class="computeroutput">boost::local_time::local_time_period</code> provides direct representation for ranges between two local times. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<a name="local_time_period_header"></a><h3>
+<a name="id1008465"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/local_time/local_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/local_time/local_time_types.hpp" //no i/o just types</pre>
+<a name="local_time_period_constr"></a><h3>
+<a name="id1008483"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ local_date_time end</pre></td>
+<td> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg(ptime(date(2005,Jan,1),hours(0)), zone);
+local_date_time
+ end(ptime(date(2005,Feb,1),hours(0)), zone);
+// period for the entire month of Jan 2005
+local_time_period ltp(beg, end);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(...)
+ Parameters:
+ local_date_time beginning
+ time_duration length</pre></td>
+<td>Create a period as [begin, begin+len) where end would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg(ptime(date(2005,Jan,1),hours(0)), zone);
+// period for the whole day of 2005-Jan-01
+local_time_period ltp(beg, hours(24));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period(local_time_period rhs)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">local_time_period ltp1(ltp);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_time_period_accessors"></a><h3>
+<a name="id1008553"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time begin()</pre></td>
+<td>Return first local_date_time of the period.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1)),hours(0)), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.begin(); // =&gt; 2005-Jan-01 00:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time last()</pre></td>
+<td>Return last local_date_time in the period</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.last(); // =&gt; 2005-Jan-01 01:59:59.999999999</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_date_time end()</pre></td>
+<td>Return one past the last in period</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.end(); // =&gt; 2005-Jan-01 02:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration length()</pre></td>
+<td>Return the length of the local_time period.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ ldt((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(ldt, hours(2));
+ltp.length(); // =&gt; 02:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end less than or equal to begin.</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg((ptime(date(2005,Feb,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Jan,1),hours(0))), zone);
+local_time_period ltp(beg, end);
+ltp.is_null(); // =&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(local_date_time)</pre></td>
+<td>True if local_date_time is within the period. Zero length periods cannot contain any points</td>
+</tr>
+<tr><td><pre class="screen">time_zone_ptr
+ zone(new posix_time_zone("MST-07"));
+local_date_time
+ beg((ptime(date(2005,Jan,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,1),hours(0))), zone);
+local_time_period jan_mst(beg, end);
+
+local_date_time
+ldt((ptime(date(2005,Jan,15),hours(12))), zone);
+jan_mst.contains(ldt); // =&gt; true
+
+local_time_period zero(beg, beg);
+zero.contains(beg); // false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(local_time_period)</pre></td>
+<td>True if period is within the period</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_time_period ltp(beg, hours(24));
+
+jan_mst.contains(ltp); // =&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(local_time_period)</pre></td>
+<td> True if periods overlap</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+jan_mst.intersects(ltp); // =&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period intersection(local_time_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+local_time_period res(jan_mst.intersection(ltp));
+// res =&gt; 2005-Jan-07 00:00:00 through
+// 2005-Jan-31 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period merge(local_time_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Jan,7),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Feb,7),hours(0))), zone);
+local_time_period ltp(beg, end);
+
+local_time_period res(jan_mst.merge(ltp));
+// res =&gt; 2005-Jan-07 00:00:00 through
+// 2005-Feb-06 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">local_time_period span(local_time_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</td>
+</tr>
+<tr><td><pre class="screen">// using jan_mst period from previous example
+
+local_date_time
+ beg((ptime(date(2005,Mar,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Apr,1),hours(0))), zone);
+local_time_period mar_mst(beg, end);
+
+local_time_period res(jan_mst.span(mar_mst));
+// res =&gt; 2005-Jan-01 00:00:00 through
+// 2005-Mar-31 23:59:59.999999999 (inclusive)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">void shift(time_duration)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td><pre class="screen">local_date_time
+ beg((ptime(date(2005,Mar,1),hours(0))), zone);
+local_date_time
+ end((ptime(date(2005,Apr,1),hours(0))), zone);
+local_time_period mar_mst(beg, end);
+
+mar_mst.shift(hours(48));
+// mar_mst =&gt; 2005-Mar-03 00:00:00 through
+// 2005-Apr-02 23:59:59.999999999 (inclusive)</pre></td></tr>
+</tbody>
+</table></div>
+<a name="local_time_period_operators"></a><h3>
+<a name="id1008912"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=</pre></td>
+<td>Equality operators. Periods are equal if ltp1.begin == ltp2.begin &amp;&amp; ltp1.last == ltp2.last</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 == ltp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>Ordering with no overlap. True if ltp1.end() less than ltp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 &lt; ltp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>Ordering with no overlap. True if ltp1.begin() greater than ltp2.end()</td>
+</tr>
+<tr><td><pre class="screen">if (ltp1 &gt; ltp2) {... etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;=, operator&gt;=</pre></td>
+<td>Defined in terms of the other operators.</td>
+</tr>
+<tr><td> </td></tr>
+</tbody>
+</table></div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="date_time_io.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/posix_time.html b/doc/html/date_time/posix_time.html
new file mode 100644
index 0000000000..e82b12a760
--- /dev/null
+++ b/doc/html/date_time/posix_time.html
@@ -0,0 +1,1298 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Posix Time</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="gregorian.html" title="Gregorian">
+<link rel="next" href="local_time.html" title="Local Time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="local_time.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="date_time.posix_time"></a>Posix Time</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.ptime_class">Ptime</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_duration">Time Duration</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_period">Time Period</a></span></dt>
+<dt><span class="section"><a href="posix_time.html#date_time.posix_time.time_iterators">Time Iterators</a></span></dt>
+</dl></div>
+<h2>
+<a name="id1000885"></a>Posix Time System</h2>
+<p><a href="posix_time.html#posix_intro">Introduction</a> --
+ <a href="posix_time.html#posix_ex">Usage Examples</a></p>
+<a name="posix_intro"></a><h3>
+<a name="id1000910"></a>Introduction</h3>
+<p>
+ Defines a non-adjusted time system with nano-second/micro-second resolution and stable calculation properties. The nano-second resolution option uses 96 bits of underlying storage for each ptime while the micro-second resolution uses 64 bits per ptime (see <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build Options</a> for details). This time system uses the Gregorian calendar to implement the date portion of the time representation.
+ </p>
+<a name="posix_ex"></a><h3>
+<a name="id1000937"></a>Usage Examples</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Example</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="examples.html#date_time.examples.time_math" title="Time Math">Time Math</a></td>
+<td>A few simple calculations using ptime and time_durations.</td>
+</tr>
+<tr>
+<td><a href="examples.html#date_time.examples.print_hours" title="Print Hours">Print Hours</a></td>
+<td>Retrieve time from clock, use a time_iterator.</td>
+</tr>
+<tr>
+<td><a href="examples.html#date_time.examples.local_utc_conversion" title="Local to UTC Conversion">Local to UTC Conversion</a></td>
+<td>Demonstrates a couple different ways to convert a local to UTC time including daylight savings rules.</td>
+</tr>
+<tr>
+<td><a href="examples.html#date_time.examples.time_periods" title="Time Periods">Time Periods</a></td>
+<td>Some simple examples of intersection and display of time periods.</td>
+</tr>
+</tbody>
+</table></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.posix_time.ptime_class"></a>Ptime</h4></div></div></div>
+<a href="posix_time.html#ptime_intro">Introduction</a> --
+ <a href="posix_time.html#ptime_header">Header</a> --
+ <a href="posix_time.html#ptime_constr">Construction</a> --
+ <a href="posix_time.html#ptime_from_string">Construct from String</a> --
+ <a href="posix_time.html#ptime_from_clock">Construct from Clock</a> --
+ <a href="posix_time.html#ptime_from_funcs">Construct using Conversion functions</a> --
+ <a href="posix_time.html#ptime_accessors">Accessors</a> --
+ <a href="posix_time.html#ptime_to_string">Conversion To String</a> --
+ <a href="posix_time.html#ptime_operators">Operators</a> --
+ <a href="posix_time.html#ptime_struct_tm">Struct tm, time_t, and FILETIME Functions</a><a name="ptime_intro"></a><h3>
+<a name="id1001106"></a>Introduction</h3>
+<p>
+ The class boost::posix_time::ptime is the primary interface for time point manipulation. In general, the ptime class is immutable once constructed although it does allow assignment.
+ </p>
+<p>
+ Class ptime is dependent on <a href="gregorian.html#date_time.gregorian.date_class" title="Date">gregorian::date</a> for the interface to the date portion of a time point.
+ </p>
+<p>
+ Other techniques for creating times include <a href="posix_time.html#date_time.posix_time.time_iterators" title="Time Iterators">time iterators</a>.
+ </p>
+<a name="ptime_header"></a><h3>
+<a name="id1001144"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<a name="ptime_constr"></a><h3>
+<a name="id1001161"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(date,time_duration)</pre></td>
+<td>Construct from a date and offset</td>
+</tr>
+<tr><td><pre class="screen">ptime t1(date(2002,Jan,10),
+ time_duration(1,2,3));
+ptime t2(date(2002,Jan,10),
+ hours(1)+nanosec(5));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(ptime)</pre></td>
+<td>Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">ptime t3(t1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime(special_values sv)</pre></td>
+<td>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</td>
+</tr>
+<tr><td><pre class="screen">ptime d1(neg_infin);
+ptime d2(pos_infin);
+ptime d3(not_a_date_time);
+ptime d4(max_date_time);
+ptime d5(min_date_time);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime;</pre></td>
+<td>Default constructor. Creates a ptime object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</td>
+</tr>
+<tr><td><pre class="screen">ptime p; // p =&gt; not_a_date_time</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_from_string"></a><h3>
+<a name="id1001280"></a>Construct from String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime time_from_string(std::string)</pre></td>
+<td>From delimited string. NOTE: Excess digits in fractional seconds will be dropped. Ex: "1:02:03.123456999" =&gt; 1:02:03.123456. This behavior is affected by the precision the library is compiled with (see <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a>.</td>
+</tr>
+<tr><td><pre class="screen">std::string ts("2002-01-20 23:59:59.000");
+ptime t(time_from_string(ts))</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_iso_string(std::string)</pre></td>
+<td>From non delimited iso form string.</td>
+</tr>
+<tr><td><pre class="screen">std::string ts("20020131T235959");
+ptime t(from_iso_string(ts))</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_from_clock"></a><h3>
+<a name="id1001365"></a>Construct from Clock</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime second_clock::local_time()</pre></td>
+<td>Get the local time, second level resolution, based on the time zone settings of the computer.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(second_clock::local_time());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime second_clock::universal_time()</pre></td>
+<td>Get the UTC time.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(second_clock::universal_time())</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime microsec_clock::local_time()</pre></td>
+<td>Get the local time using a sub second resolution clock. On Unix systems this is implemented using GetTimeOfDay. On most Win32 platforms it is implemented using ftime. Win32 systems often do not achieve microsecond resolution via this API. If higher resolution is critical to your application test your platform to see the achieved resolution.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(microsec_clock::local_time());</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime microsec_clock::universal_time()</pre></td>
+<td>Get the UTC time using a sub second resolution clock. On Unix systems this is implemented using GetTimeOfDay. On most Win32 platforms it is implemented using ftime. Win32 systems often do not achieve microsecond resolution via this API. If higher resolution is critical to your application test your platform to see the achieved resolution.</td>
+</tr>
+<tr><td><pre class="screen">ptime t(microsec_clock::universal_time());</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_from_funcs"></a><h3>
+<a name="id1001492"></a>Construct using Conversion Functions</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_time_t(time_t t);</pre></td>
+<td>Converts a time_t into a ptime.</td>
+</tr>
+<tr><td><pre class="screen">ptime t = from_time_t(tt);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_ftime&lt;ptime&gt;(FILETIME ft);</pre></td>
+<td>Creates a ptime object from a FILETIME structure.</td>
+</tr>
+<tr><td><pre class="screen">ptime t = from_ftime&lt;ptime&gt;(ft);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_accessors"></a><h3>
+<a name="id1001566"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date()</pre></td>
+<td>Get the date part of a time.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.date() --&gt; 2002-Jan-10;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration time_of_day()</pre></td>
+<td>Get the time offset in the day.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,10);
+ptime t(d, hour(1));
+t.time_of_day() --&gt; 01:00:00;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_infinity() const</pre></td>
+<td>Returns true if ptime is either positive or negative infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(pos_infin);
+pt.is_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if ptime is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(neg_infin);
+pt.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if ptime is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(neg_infin);
+pt.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a ptime</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(not_a_date_time);
+pt.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if ptime is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(pos_infin);
+ptime pt2(not_a_date_time);
+ptime pt3(date(2005,Mar,1), hours(10));
+pt.is_special(); // --&gt; true
+pt2.is_special(); // --&gt; true
+pt3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_to_string"></a><h3>
+<a name="id1001748"></a>Conversion to String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(ptime)</pre></td>
+<td>To <code class="computeroutput">YYYY-mmm-DD HH:MM:SS.fffffffff</code> string where <code class="computeroutput">mmm</code> 3 char month name. Fractional seconds only included if non-zero.</td>
+</tr>
+<tr><td><pre class="screen">2002-Jan-01 10:00:01.123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(ptime)</pre></td>
+<td>Convert to form <code class="computeroutput">YYYYMMDDTHHMMSS,fffffffff</code> where <code class="computeroutput">T</code> is the date-time separator</td>
+</tr>
+<tr><td><pre class="screen">20020131T100001,123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_extended_string(ptime)</pre></td>
+<td>Convert to form <code class="computeroutput">YYYY-MM-DDTHH:MM:SS,fffffffff</code> where <code class="computeroutput">T</code> is the date-time separator</td>
+</tr>
+<tr><td><pre class="screen">2002-01-31T10:00:01,123456789</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_operators"></a><h3>
+<a name="id1001886"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(not_a_date_time);
+stringstream ss("2002-Jan-01 14:23:11");
+ss &gt;&gt; pt;
+std::cout &lt;&lt; pt; // "2002-Jan-01 14:23:11"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">t1 == t2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator+(days)</pre></td>
+<td>Return a ptime adding a day offset</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t + dd;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator-(days)</pre></td>
+<td>Return a ptime subtracting a day offset</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+days dd(1);
+ptime t2 = t - dd;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator+(time_duration)</pre></td>
+<td>Return a ptime adding a time duration</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t + hours(1) + minutes(2);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime operator-(time_duration)</pre></td>
+<td>Return a ptime subtracting a time duration</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime t(d,minutes(5));
+ptime t2 = t - minutes(2);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator-(ptime)</pre></td>
+<td>Take the difference between two times.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime t1(d,minutes(5));
+ptime t2(d,seconds(5));
+time_duration t3 = t2 - t1;//negative result</pre></td></tr>
+</tbody>
+</table></div>
+<a name="ptime_struct_tm"></a><h3>
+<a name="id1002086"></a>Struct tm, time_t, and FILETIME Functions</h3>
+<p>Functions for converting posix_time objects to, and from, <code class="computeroutput">tm</code> structs are provided as well as conversion from <code class="computeroutput">time_t</code> and <code class="computeroutput">FILETIME</code>.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(ptime)</pre></td>
+<td>A function for converting a <code class="computeroutput">ptime</code> object to a <code class="computeroutput">tm</code> struct. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(date(2005,Jan,1), time_duration(1,2,3));
+tm pt_tm = to_tm(pt);
+/* tm_year =&gt; 105
+ tm_mon =&gt; 0
+ tm_mday =&gt; 1
+ tm_wday =&gt; 6 (Saturday)
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date date_from_tm(tm datetm)</pre></td>
+<td>A function for converting a <code class="computeroutput">tm</code> struct to a <code class="computeroutput">date</code> object. The fields: <code class="computeroutput">tm_wday </code>, <code class="computeroutput">tm_yday </code>, and <code class="computeroutput">tm_isdst</code> are ignored.</td>
+</tr>
+<tr><td><pre class="screen">tm pt_tm;
+pt_tm.tm_year = 105;
+pt_tm.tm_mon = 0;
+pt_tm.tm_mday = 1;
+pt_tm.tm_hour = 1;
+pt_tm.tm_min = 2;
+pt_tm.tm_sec = 3;
+ptime pt = ptime_from_tm(pt_tm);
+// pt =&gt; 2005-Jan-01 01:02:03</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(time_duration)</pre></td>
+<td>A function for converting a <code class="computeroutput">time_duration</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_year</code>, <code class="computeroutput">tm_mon</code>, <code class="computeroutput">tm_mday</code>, <code class="computeroutput">tm_wday</code>, <code class="computeroutput">tm_yday</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year =&gt; 0
+ tm_mon =&gt; 0
+ tm_mday =&gt; 0
+ tm_wday =&gt; 0
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_time_t(std::time_t)</pre></td>
+<td>Creates a <code class="computeroutput">ptime</code> from the time_t parameter. The seconds held in the time_t are added to a time point of 1970-Jan-01.</td>
+</tr>
+<tr><td><pre class="screen">ptime pt(not_a_date_time);
+std::time_t t;
+t = 1118158776;
+pt = from_time_t(t);
+// pt =&gt; 2005-Jun-07 15:39:36</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime from_ftime&lt;ptime&gt;(FILETIME)</pre></td>
+<td>A template function that constructs a <code class="computeroutput">ptime</code> from a FILETIME struct.</td>
+</tr>
+<tr><td><pre class="screen">FILETIME ft;
+ft.dwHighDateTime = 29715317;
+ft.dwLowDateTime = 3865122988UL;
+ptime pt = from_ftime&lt;ptime&gt;(ft);
+// pt =&gt; 2005-Jun-07 15:30:57.039582000</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.posix_time.time_duration"></a>Time Duration</h4></div></div></div>
+<a href="posix_time.html#time_duration_intro">Introduction</a> --
+ <a href="posix_time.html#time_duration_header">Header</a> --
+ <a href="posix_time.html#time_duration_constr">Construction</a> --
+ <a href="posix_time.html#time_duration_count_constr">Count Based Construction</a> --
+ <a href="posix_time.html#time_duration_from_string">Construct from String</a> --
+ <a href="posix_time.html#time_duration_accessors">Accessors</a> --
+ <a href="posix_time.html#time_duration_to_string">Conversion To String</a> --
+ <a href="posix_time.html#time_duration_operators">Operators</a> --
+ <a href="posix_time.html#time_duration_struct_tm">Struct tm Functions</a><a name="time_duration_intro"></a><h3>
+<a name="id1002458"></a>Introduction</h3>
+<p>
+ The class boost::posix_time::time_duration the base type responsible for representing a length of time. A duration can be either positive or negative. The general time_duration class provides a constructor that takes a count of the number of hours, minutes, seconds, and fractional seconds count as shown in the code fragment below. The resolution of the time_duration is configure able at compile time. See <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.
+ </p>
+<pre class="programlisting">using namespace boost::posix_time;
+time_duration td(1,2,3,4); //01:02:03.000000004 when resolution is nano seconds
+time_duration td(1,2,3,4); //01:02:03.000004 when resolution is micro seconds</pre>
+<p>
+ Several small helper classes that derive from a base time_duration, as shown below, to adjust for different resolutions. These classes can shorten code and make the intent clearer.
+ </p>
+<img src="../../../libs/date_time/doc/time_duration_inherit.png"><p>
+ As an example:
+ </p>
+<pre class="programlisting">using namespace boost::posix_time;
+
+time_duration td = hours(1) + seconds(10); //01:00:01
+td = hours(1) + nanoseconds(5); //01:00:00.000000005</pre>
+<p>
+ Note that the existence of the higher resolution classes (eg: nanoseconds) depends on the installation of the library. See <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a> for more information.
+ </p>
+<p>
+ Another way to handle this is to utilize the ticks_per_second() method of time_duration to
+ write code that is portable no matter how the library is compiled. The general equation
+ for calculating a resolution independent count is as follows:
+
+ </p>
+<pre class="programlisting">
+count*(time_duration_ticks_per_second / count_ticks_per_second)
+ </pre>
+<p>
+
+ For example, let's suppose we want to construct using a count that represents tenths
+ of a second. That is, each tick is 0.1 second.
+ </p>
+<pre class="programlisting">
+int number_of_tenths = 5;
+//create a resolution independent count -- divide by 10 since there are
+//10 tenths in a second.
+int count = number_of_tenths*(time_duration::ticks_per_second()/10);
+time_duration td(1,2,3,count); //01:02:03.5 //no matter the resolution settings
+ </pre>
+<a name="time_duration_header"></a><h3>
+<a name="id1002549"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<a name="time_duration_constr"></a><h3>
+<a name="id1002567"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration(hours,
+ minutes,
+ seconds,
+ fractional_seconds)</pre></td>
+<td>Construct a duration from the counts. The fractional_second parameter is a number of units and is therefore affected by the resolution the application is compiled with (see <a href="details.html#compile_options">Build-Compiler Information</a>). If the fractional_seconds argument exceeds the limit of the compiled precision, the excess value will be "carried over" into the seconds field. See above for techniques to creating a resolution independent count.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,9);
+//1 hr 2 min 3 sec 9 nanoseconds
+time_duration td2(1,2,3,123456789);
+time_duration td3(1,2,3,1000);
+// with microsecond resolution (6 digits)
+// td2 =&gt; "01:04:06.456789"
+// td3 =&gt; "01:02:03.001000"
+// with nanosecond resolution (9 digits)
+// td2 =&gt; "01:02:03.123456789"
+// td3 =&gt; "01:02:03.000001000"</pre></td></tr>
+<tr>
+<td valign="top"><pre class="screen">time_duration(special_value sv)</pre></td>
+<td>Special values constructor. <span class="strong"><strong>Important note</strong></span>: When a time_duration is a special value, either by construction or other means, the following accessor functions will give unpredictable results: <pre class="screen">hours(), minutes(), seconds(), ticks(),
+fractional_seconds(), total_nanoseconds(),
+total_microseconds(), total_milliseconds(),
+total_seconds()</pre>The remaining accessor functions will work as expected.</td>
+</tr>
+</tbody>
+</table></div>
+<a name="time_duration_count_constr"></a><h3>
+<a name="id1002628"></a>Count Based Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">hours(long)</pre></td>
+<td>Number of hours</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = hours(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">minutes(long)</pre></td>
+<td>Number of minutes</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = minutes(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">seconds(long)</pre></td>
+<td> Number of seconds</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = seconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">milliseconds(long)</pre></td>
+<td>Number of milliseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = milliseconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">microseconds(long)</pre></td>
+<td>Number of microseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = microseconds(3);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">nanoseconds(long)</pre></td>
+<td>Number of nanoseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td = nanoseconds(3);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_duration_from_string"></a><h3>
+<a name="id1002822"></a>Construct from String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration duration_from_string(std::string)</pre></td>
+<td>From delimited string. NOTE: Excess digits in fractional seconds will be dropped. Ex: "1:02:03.123456999" =&gt; 1:02:03.123456. This behavior is affected by the precision the library is compiled with (see <a href="details.html#date_time.buildinfo" title="Build-Compiler Information">Build-Compiler Information</a>.</td>
+</tr>
+<tr><td><pre class="screen">std::string ts("23:59:59.000");
+time_duration td(duration_from_string(ts));</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_duration_accessors"></a><h3>
+<a name="id1002887"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long hours()</pre></td>
+<td>Get the number of normalized hours (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.hours(); // --&gt; 1
+neg_td.hours(); // --&gt; -1</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long minutes()</pre></td>
+<td>Get the number of minutes normalized +/-(0..59) (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.minutes(); // --&gt; 2
+neg_td.minutes(); // --&gt; -2</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long seconds()</pre></td>
+<td>Get the normalized number of second +/-(0..59) (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_duration neg_td(-1,2,3);
+td.seconds(); // --&gt; 3
+neg_td.seconds(); // --&gt; -3</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_seconds()</pre></td>
+<td>Get the total number of seconds truncating any fractional seconds (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,10);
+td.total_seconds();
+// --&gt; (1*3600) + (2*60) + 3 == 3723</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_milliseconds()</pre></td>
+<td>Get the total number of milliseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,123456789);
+td.total_milliseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// milliseconds is 3 decimal places
+// (3723 * 1000) + 123 == 3723123</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_microseconds()</pre></td>
+<td>Get the total number of microseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,123456789);
+td.total_microseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// microseconds is 6 decimal places
+// (3723 * 1000000) + 123456 == 3723123456</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long total_nanoseconds()</pre></td>
+<td>Get the total number of nanoseconds truncating any remaining digits (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3,123456789);
+td.total_nanoseconds();
+// HMS --&gt; (1*3600) + (2*60) + 3 == 3723 seconds
+// nanoseconds is 9 decimal places
+// (3723 * 1000000000) + 123456789
+// == 3723123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">long fractional_seconds()</pre></td>
+<td>Get the number of fractional seconds (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3, 1000);
+td.fractional_seconds(); // --&gt; 1000</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_negative()</pre></td>
+<td>True if duration is negative.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(-1,0,0);
+td.is_negative(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration invert_sign()</pre></td>
+<td>Generate a new duration with the sign inverted/</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(-1,0,0);
+td.invert_sign(); // --&gt; 01:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">date_time::time_resolutions resolution()</pre></td>
+<td>Describes the resolution capability of the time_duration class. time_resolutions is an enum of resolution possibilities ranging from seconds to nanoseconds.</td>
+</tr>
+<tr><td><pre class="screen">time_duration::resolution() --&gt; nano</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration::num_fractional_digits()</pre></td>
+<td>Returns an unsigned short holding the number of fractional digits the time resolution has.</td>
+</tr>
+<tr><td><pre class="screen">unsigned short secs;
+secs = time_duration::num_fractional_digits();
+// 9 for nano, 6 for micro, etc.</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration::ticks_per_second()</pre></td>
+<td>Return the number of ticks in a second. For example, if the duration supports nanoseconds then the returned result will be 1000000.</td>
+</tr>
+<tr><td><pre class="screen">std::cout &lt;&lt; time_duration::ticks_per_second();</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">boost::int64_t ticks()</pre></td>
+<td>Return the raw count of the duration type (will give unpredictable results if calling <code class="computeroutput">time_duration</code> is a <code class="computeroutput">special_value</code>).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(0,0,0, 1000);
+td.ticks() // --&gt; 1000</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration unit()</pre></td>
+<td>Return smallest possible unit of duration type (1 nanosecond).</td>
+</tr>
+<tr><td><pre class="screen">time_duration::unit() --&gt; time_duration(0,0,0,1)</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_neg_infinity() const</pre></td>
+<td>Returns true if time_duration is negative infinity</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(neg_infin);
+td.is_neg_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_pos_infinity() const</pre></td>
+<td>Returns true if time_duration is positive infinity</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(neg_infin);
+td.is_pos_infinity(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_not_a_date_time() const</pre></td>
+<td>Returns true if value is not a time</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(not_a_date_time);
+td.is_not_a_date_time(); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_special() const</pre></td>
+<td>Returns true if time_duration is any <code class="computeroutput">special_value</code>
+</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(pos_infin);
+time_duration td2(not_a_date_time);
+time_duration td3(2,5,10);
+td.is_special(); // --&gt; true
+td2.is_special(); // --&gt; true
+td3.is_special(); // --&gt; false</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_duration_to_string"></a><h3>
+<a name="id1003446"></a>Conversion To String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_simple_string(time_duration)</pre></td>
+<td>To <code class="computeroutput">HH:MM:SS.fffffffff</code> were <code class="computeroutput">fff</code> is fractional seconds that are only included if non-zero.</td>
+</tr>
+<tr><td><pre class="screen">10:00:01.123456789</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string to_iso_string(time_duration)</pre></td>
+<td>Convert to form <code class="computeroutput">HHMMSS,fffffffff</code>.</td>
+</tr>
+<tr><td><pre class="screen">100001,123456789</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_duration_operators"></a><h3>
+<a name="id1003546"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;, operator&gt;&gt;</pre></td>
+<td>Streaming operators. <span class="strong"><strong>Note:</strong></span> As of version 1.33, streaming operations have been greatly improved. See <a href="date_time_io.html" title="Date Time Input/Output">Date Time IO System</a> for more details (including exceptions and error conditions).</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(0,0,0);
+stringstream ss("14:23:11.345678");
+ss &gt;&gt; td;
+std::cout &lt;&lt; td; // "14:23:11.345678"
+ </pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=,
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">dd1 == dd2, etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator+(time_duration)</pre></td>
+<td>Add durations.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td1(hours(1)+minutes(2));
+time_duration td2(seconds(10));
+time_duration td3 = td1 + td2;</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator-(time_duration)</pre></td>
+<td>Subtract durations.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td1(hours(1)+nanoseconds(2));
+time_duration td2 = td1 - minutes(1);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator/(int)</pre></td>
+<td>Divide the length of a duration by an integer value. Discards any remainder.</td>
+</tr>
+<tr><td><pre class="screen">hours(3)/2 == time_duration(1,30,0);
+nanosecond(3)/2 == nanosecond(1);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration operator*(int)</pre></td>
+<td>Multiply the length of a duration by an integer value.</td>
+</tr>
+<tr><td><pre class="screen">hours(3)*2 == hours(6);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_duration_struct_tm"></a><h3>
+<a name="id1003724"></a>Struct tm, time_t, and FILETIME Functions</h3>
+<p>Function for converting a time_duration to a <code class="computeroutput">tm</code> struct is provided.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">tm to_tm(time_duration)</pre></td>
+<td>A function for converting a <code class="computeroutput">time_duration</code> object to a <code class="computeroutput">tm</code> struct. The fields: <code class="computeroutput">tm_year</code>, <code class="computeroutput">tm_mon</code>, <code class="computeroutput">tm_mday</code>, <code class="computeroutput">tm_wday</code>, <code class="computeroutput">tm_yday</code> are set to zero. The <code class="computeroutput">tm_isdst</code> field is set to -1.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+tm td_tm = to_tm(td);
+/* tm_year =&gt; 0
+ tm_mon =&gt; 0
+ tm_mday =&gt; 0
+ tm_wday =&gt; 0
+ tm_yday =&gt; 0
+ tm_hour =&gt; 1
+ tm_min =&gt; 2
+ tm_sec =&gt; 3
+ tm_isddst =&gt; -1 */</pre></td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.posix_time.time_period"></a>Time Period</h4></div></div></div>
+<a href="posix_time.html#time_period_intro">Introduction</a> --
+ <a href="posix_time.html#time_period_header">Header</a> --
+ <a href="posix_time.html#time_period_constr">Construction</a> --
+ <a href="posix_time.html#time_period_accessors">Accessors</a> --
+ <a href="posix_time.html#time_period_to_string">Conversion To String</a> --
+ <a href="posix_time.html#time_period_operators">Operators</a><a name="time_period_intro"></a><h3>
+<a name="id1003900"></a>Introduction</h3>
+<p>
+ The class boost::posix_time::time_period provides direct representation for ranges between two times. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program.
+ </p>
+<p>
+ A period that is created with beginning and end points being equal, or with a duration of zero, is known as a zero length period. Zero length periods are considered invalid (it is perfectly legal to construct an invalid period). For these periods, the <code class="computeroutput">last</code> point will always be one unit less that the <code class="computeroutput">begin</code> point.
+ </p>
+<p>
+ The <a href="examples.html#date_time.examples.time_periods" title="Time Periods">time periods example</a> provides an example of using time periods.
+ </p>
+<a name="time_period_header"></a><h3>
+<a name="id1003945"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<a name="time_period_constr"></a><h3>
+<a name="id1003963"></a>Construction</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(ptime,
+ ptime)</pre></td>
+<td> Create a period as [begin, end). If end is &lt;= begin then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t(d, seconds(10)); //10 sec after midnight
+time_period tp(t, hours(3));</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(ptime,
+ time_duration)</pre></td>
+<td> Create a period as [begin, begin+len) where end would be begin+len. If len is &lt;= zero then the period will be defined as invalid.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period(time_period rhs)</pre></td>
+<td> Copy constructor</td>
+</tr>
+<tr><td><pre class="screen">time_period tp1(tp);</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_period_accessors"></a><h3>
+<a name="id1004030"></a>Accessors</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime begin()</pre></td>
+<td>Return first time of period.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.begin(); // --&gt; 2002-Jan-01 00:00:10</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime last()</pre></td>
+<td>Return last time in the period</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.last();// --&gt; 2002-Jan-01 09:59:59.999999999</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">ptime end()</pre></td>
+<td> Return one past the last in period</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+time_period tp(t1, t2);
+tp.last(); // --&gt; 2002-Jan-01 10:00:00</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_duration length()</pre></td>
+<td>Return the length of the time period.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d); //midnight
+time_period tp(t1, hours(1));
+tp.length() --&gt; 1 hour</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool is_null()</pre></td>
+<td>True if period is not well formed. eg: end is less than or equal to begin.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, hours(12)); // noon on Jan 1st
+ptime t2(d, hours(9)); // 9am on Jan 1st
+time_period tp(t1, t2);
+tp.is_null(); // true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(ptime)</pre></td>
+<td>True if ptime is within the period. Zero length periods cannot contain any points.</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,01);
+ptime t1(d, seconds(10)); //10 sec after midnight
+ptime t2(d, hours(10)); //10 hours after midnight
+ptime t3(d, hours(2)); //2 hours after midnight
+time_period tp(t1, t2);
+tp.contains(t3); // true
+time_period tp2(t1, t1);
+tp2.contains(t1); // false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool contains(time_period)</pre></td>
+<td>True if period is within the period</td>
+</tr>
+<tr><td><pre class="screen">time_period tp1(ptime(d,hours(1)),
+ ptime(d,hours(12)));
+time_period tp2(ptime(d,hours(2)),
+ ptime(d,hours(4)));
+tp1.contains(tp2); // --&gt; true
+tp2.contains(tp1); // --&gt; false</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">bool intersects(time_period)</pre></td>
+<td> True if periods overlap</td>
+</tr>
+<tr><td><pre class="screen">time_period tp1(ptime(d,hours(1)),
+ ptime(d,hours(12)));
+time_period tp2(ptime(d,hours(2)),
+ ptime(d,hours(4)));
+tp2.intersects(tp1); // --&gt; true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period intersection(time_period)</pre></td>
+<td>Calculate the intersection of 2 periods. Null if no intersection.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period merge(time_period)</pre></td>
+<td>Returns union of two periods. Null if no intersection.</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period span(time_period)</pre></td>
+<td>Combines two periods and any gap between them such that begin = min(p1.begin, p2.begin) and end = max(p1.end , p2.end).</td>
+</tr>
+<tr><td> </td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_period shift(days)</pre></td>
+<td>Add duration to both begin and end.</td>
+</tr>
+<tr><td> </td></tr>
+</tbody>
+</table></div>
+<a name="time_period_to_string"></a><h3>
+<a name="id1004260"></a>Conversion To String</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">std::string
+ to_simple_string(time_period dp)</pre></td>
+<td>To <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/
+ 2002-Jan-31 01:25:10.123456789]
+// string occupies one line</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_period_operators"></a><h3>
+<a name="id1004429"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;&lt;</pre></td>
+<td>Output streaming operator for time duration. Uses facet to output [date time_of_day/date time_of_day]. The default is format is <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name and the fractional seconds are left out when zero.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;&gt;</pre></td>
+<td>Input streaming operator for time duration. Uses facet to read [date time_of_day/date time_of_day]. The default is format is <code class="computeroutput">[YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff]</code> string where <code class="computeroutput">mmm</code> is 3 char month name and the fractional seconds are left out when zero.</td>
+</tr>
+<tr><td><pre class="screen">[2002-Jan-01 01:25:10.000000001/ \
+ 2002-Jan-31 01:25:10.123456789]</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==, operator!=</pre></td>
+<td>Equality operators. Periods are equal if p1.begin == p2.begin &amp;&amp; p1.last == p2.last</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 == tp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;</pre></td>
+<td>Ordering with no overlap. True if tp1.end() less than tp2.begin()</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 &lt; tp2) {...</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&gt;</pre></td>
+<td>Ordering with no overlap. True if tp1.begin() greater than tp2.end()</td>
+</tr>
+<tr><td><pre class="screen">if (tp1 &gt; tp2) {... etc</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator&lt;=, operator&gt;=</pre></td>
+<td>Defined in terms of the other operators.</td>
+</tr>
+<tr><td> </td></tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="date_time.posix_time.time_iterators"></a>Time Iterators</h4></div></div></div>
+<a href="posix_time.html#time_iter_intro">Introduction</a> --
+ <a href="posix_time.html#time_iter_header">Header</a> --
+ <a href="posix_time.html#time_iter_overview">Overview</a> --
+ <a href="posix_time.html#time_iter_operators">Operators</a><a name="time_iter_intro"></a><h3>
+<a name="id1004658"></a>Introduction</h3>
+<p>
+ Time iterators provide a mechanism for iteration through times. Time iterators are similar to <a href="http://www.sgi.com/tech/stl/BidirectionalIterator.html" target="_top">Bidirectional Iterators</a>. However, time_iterators are different than standard iterators in that there is no underlying sequence, just a calculation function. In addition, time_iterators are directly comparable against instances of <a href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">class ptime</a>. Thus a second iterator for the end point of the iteration is not required, but rather a point in time can be used directly. For example, the following code iterates using a 15 minute iteration interval. The <a href="examples.html#date_time.examples.print_hours" title="Print Hours">print hours</a> example also illustrates the use of the time_iterator.
+ </p>
+<pre class="programlisting">
+ #include "boost/date_time/posix_time/posix_time.hpp"
+ #include &lt;iostream&gt;
+
+
+ int
+ main()
+ {
+ using namespace boost::gregorian;
+ using namespace boost::posix_time;
+ date d(2000,Jan,20);
+ ptime start(d);
+ ptime end = start + hours(1);
+ time_iterator titr(start,minutes(15)); //increment by 15 minutes
+ //produces 00:00:00, 00:15:00, 00:30:00, 00:45:00
+ while (titr &lt; end) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ ++titr;
+ }
+ std::cout &lt;&lt; "Now backward" &lt;&lt; std::endl;
+ //produces 01:00:00, 00:45:00, 00:30:00, 00:15:00
+ while (titr &gt; start) {
+ std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
+ --titr;
+ }
+ }
+ </pre>
+<a name="time_iter_header"></a><h3>
+<a name="id1004705"></a>Header</h3>
+<pre class="programlisting">#include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
+or
+#include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types</pre>
+<a name="time_iter_overview"></a><h3>
+<a name="id1004728"></a>Overview</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Class</th>
+<th>Description</th>
+</tr>
+<tr><th>Construction Parameters</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">time_iterator</pre></td>
+<td>Iterate incrementing by the specified duration.</td>
+</tr>
+<tr><td><pre class="screen">ptime start_time, time_duration increment</pre></td></tr>
+</tbody>
+</table></div>
+<a name="time_iter_operators"></a><h3>
+<a name="id1004781"></a>Operators</h3>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead>
+<tr>
+<th rowspan="2" valign="top">Syntax</th>
+<th>Description</th>
+</tr>
+<tr><th>Example</th></tr>
+</thead>
+<tbody>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">operator==(const ptime&amp; rhs),
+operator!=(const ptime&amp; rhs),
+operator&gt;, operator&lt;,
+operator&gt;=, operator&lt;=</pre></td>
+<td>A full complement of comparison operators</td>
+</tr>
+<tr><td><pre class="screen">date d(2002,Jan,1);
+ptime start_time(d, hours(1));
+//increment by 10 minutes
+time_iterator titr(start_time, minutes(10));
+ptime end_time = start_time + hours(2);
+if (titr == end_time) // false
+if (titr != end_time) // true
+if (titr &gt;= end_time) // false
+if (titr &lt;= end_time) // true</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">prefix increment</pre></td>
+<td>Increment the iterator by the specified duration.</td>
+</tr>
+<tr><td><pre class="screen">//increment by 10 milli seconds
+time_iterator titr(start_time, milliseconds(10));
+++titr; // == start_time + 10 milliseconds</pre></td></tr>
+<tr>
+<td rowspan="2" valign="top"><pre class="screen">prefix decrement</pre></td>
+<td>Decrement the iterator by the specified time duration.</td>
+</tr>
+<tr><td><pre class="screen">time_duration td(1,2,3);
+time_iterator titr(start_time, td);
+--titr; // == start_time - 01:02:03</pre></td></tr>
+</tbody>
+</table></div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="local_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/date_time/serialization.html b/doc/html/date_time/serialization.html
new file mode 100644
index 0000000000..2c18c042f0
--- /dev/null
+++ b/doc/html/date_time/serialization.html
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Serialization</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../date_time.html" title="Chapter 3. Boost.Date_Time">
+<link rel="prev" href="date_time_io.html" title="Date Time Input/Output">
+<link rel="next" href="details.html" title="Details">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time_io.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="details.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="date_time.serialization"></a>Serialization</h3></div></div></div>
+<p>
+ The boost::date_time library is compatible with the boost::serialization library's text and xml archives. The list of classes that are serializable are:
+ </p>
+<h3>
+<a name="id1033183"></a>boost::gregorian</h3>
+<div class="informaltable"><table class="table" width="100%">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><a href="gregorian.html#date_time.gregorian.date_class" title="Date">date</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_duration" title="Date Duration (aka Days)">date_duration</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_period" title="Date Period">date_period</a></td>
+</tr>
+<tr>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">partial_date</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">nth_day_of_week_in_month</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_in_month</a></td>
+</tr>
+<tr>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">last_day_of_week_in_month</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_before</a></td>
+<td><a href="gregorian.html#date_time.gregorian.date_algorithms" title="Date Generators/Algorithms">first_day_of_week_after</a></td>
+</tr>
+<tr>
+<td>greg_month</td>
+<td>greg_day</td>
+<td>greg_weekday</td>
+</tr>
+</tbody>
+</table></div>
+<h3>
+<a name="id1033281"></a>boost::posix_time</h3>
+<div class="informaltable"><table class="table" width="100%">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody><tr>
+<td><a href="posix_time.html#date_time.posix_time.ptime_class" title="Ptime">ptime</a></td>
+<td><a href="posix_time.html#date_time.posix_time.time_duration" title="Time Duration">time_duration</a></td>
+<td><a href="posix_time.html#date_time.posix_time.time_period" title="Time Period">time_period</a></td>
+</tr></tbody>
+</table></div>
+<p>
+ No extra steps are required to build the date_time library for serialization use.
+ </p>
+<p>NOTE: due to a change in the serialization library interface, it is now required that all streamable objects be const prior to writing to the archive. The following template function will allow for this (and is used in the date_time tests). At this time no special steps are necessary to read from an archive.
+ </p>
+<pre class="programlisting">
+ template&lt;class archive_type, class temporal_type&gt;
+ void save_to(archive_type&amp; ar, const temporal_type&amp; tt)
+ {
+ ar &lt;&lt; tt;
+ }
+ </pre>
+<p>
+ Example text_archive usage:
+ </p>
+<pre class="programlisting">
+ using namespace boost::posix_time;
+ using namespace boost::gregorian;
+ ptime pt(date(2002, Feb, 14)), hours(10)), pt2(not_a_date_time);
+ std::ofstream ofs("tmp_file");
+ archive::test_oarchive oa(ofs);
+ save_to(oa, pt); // NOTE: no macro
+ ofs.close();
+ std::ifstream ifs("tmp_file");
+ archive::text_iarchive ia(ifs);
+ ia &gt;&gt; pt2; // NOTE: no macro
+ ifs.close();
+ pt == pt2; // true</pre>
+<p>
+ Example xml_archive usage:
+ </p>
+<pre class="programlisting">
+ using namespace boost::gregorian;
+ date d(2002, Feb, 14), d2(not_a_date_time);
+ std::ofstream ofs("tmp_file");
+ archive::xml_oarchive oa(ofs);
+ save_to(oa, BOOST_SERIALIZATION_NVP(d)); // macro required for xml_archive
+ ofs.close();
+ std::ifstream ifs("tmp_file");
+ archive::xml_iarchive ia(ifs);
+ ia &gt;&gt; BOOST_SERIALIZATION_NVP(d2); // macro required for xml_archive
+ ifs.close();
+ d == d2; // true</pre>
+<p>
+ To use the date_time serialization code, the proper header files must be explicitly included. The header files are:
+ </p>
+<pre class="programlisting">
+ boost/date_time/gregorian/greg_serialize.hpp</pre>
+<p>
+ and
+ </p>
+<pre class="programlisting">
+ boost/date_time/posix_time/time_serialize.hpp</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"><small>Copyright © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time_io.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../date_time.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="details.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/day_calc_dst_rule.html b/doc/html/day_calc_dst_rule.html
new file mode 100644
index 0000000000..66b6883b7d
--- /dev/null
+++ b/doc/html/day_calc_dst_rule.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template day_calc_dst_rule</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045441" title="Header &lt;boost/date_time/dst_transition_generators.hpp&gt;">
+<link rel="prev" href="dst_day_calc_rule.html" title="Class template dst_day_calc_rule">
+<link rel="next" href="time_from_ftime.html" title="Function template time_from_ftime">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_day_calc_rule.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045441"><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="time_from_ftime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="day_calc_dst_rule"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template day_calc_dst_rule</span></h2>
+<p>boost::date_time::day_calc_dst_rule &#8212; Canonical form for a class that provides day rule calculation. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> spec&gt;
+<span class="bold"><strong>class</strong></span> day_calc_dst_rule
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::dst_day_calc_rule&lt; spec::date_type &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> spec::date_type      date_type; 
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type year_type; 
+  <span class="bold"><strong>typedef</strong></span> spec::start_rule     start_rule;
+  <span class="bold"><strong>typedef</strong></span> spec::end_rule       end_rule;  
+
+  <span class="emphasis"><em>// <a href="day_calc_dst_rule.html#day_calc_dst_ruleconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="day_calc_dst_rule.html#id833698-bb">day_calc_dst_rule</a>(start_rule, end_rule);
+
+  <span class="emphasis"><em>// <a href="day_calc_dst_rule.html#id1039477-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a href="day_calc_dst_rule.html#id964277-bb">start_day</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="day_calc_dst_rule.html#id1078670-bb">start_rule_as_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a href="day_calc_dst_rule.html#id1080463-bb">end_day</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="day_calc_dst_rule.html#id1080487-bb">end_rule_as_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1083080"></a><h2>Description</h2>
+<p>This class is used to generate specific sets of dst rules</p>
+<p></p>
+<div class="refsect2" lang="en">
+<a name="id1083088"></a><h3>
+<a name="day_calc_dst_ruleconstruct-copy-destruct"></a><code class="computeroutput">day_calc_dst_rule</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id833698-bb"></a>day_calc_dst_rule(start_rule dst_start, end_rule dst_end);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1083122"></a><h3>
+<a name="id1039477-bb"></a><code class="computeroutput">day_calc_dst_rule</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a name="id964277-bb"></a>start_day(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1078670-bb"></a>start_rule_as_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a name="id1080463-bb"></a>end_day(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1080487-bb"></a>end_rule_as_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_day_calc_rule.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045441"><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="time_from_ftime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/day_clock.html b/doc/html/day_clock.html
new file mode 100644
index 0000000000..22aae21969
--- /dev/null
+++ b/doc/html/day_clock.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template day_clock</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1044589" title="Header &lt;boost/date_time/date_clock_device.hpp&gt;">
+<link rel="prev" href="boost/date_time/date.html" title="Class template date">
+<link rel="next" href="date_duration.html" title="Class template date_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/date_time/date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1044589"><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="date_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="day_clock"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template day_clock</span></h2>
+<p>boost::date_time::day_clock &#8212; A clock providing day level services based on C time_t capabilities. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> day_clock {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::ymd_type ymd_type;
+
+  <span class="emphasis"><em>// <a href="day_clock.html#id943455-bb">public static functions</a></em></span>
+  <span class="type">date_type</span> <a href="day_clock.html#id897925-bb">local_day</a>() ;
+  <span class="type">date_type::ymd_type</span> <a href="day_clock.html#id907504-bb">local_day_ymd</a>() ;
+  <span class="type">date_type::ymd_type</span> <a href="day_clock.html#id1001335-bb">universal_day_ymd</a>() ;
+  <span class="type">date_type</span> <a href="day_clock.html#id801108-bb">universal_day</a>() ;
+
+  <span class="emphasis"><em>// <a href="day_clock.html#id964665-bb">private static functions</a></em></span>
+  <span class="type">::std::tm *</span> <a href="day_clock.html#id858183-bb">get_local_time</a>(std::tm &amp;) ;
+  <span class="type">::std::tm *</span> <a href="day_clock.html#id1036672-bb">get_universal_time</a>(std::tm &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1041922"></a><h2>Description</h2>
+<p>This clock uses Posix interfaces as its implementation and hence uses the timezone settings of the operating system. Incorrect user settings will result in incorrect results for the calls to local_day. </p>
+<div class="refsect2" lang="en">
+<a name="id1041931"></a><h3>
+<a name="id943455-bb"></a><code class="computeroutput">day_clock</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id897925-bb"></a>local_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type::ymd_type</span> <a name="id907504-bb"></a>local_day_ymd() ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type::ymd_type</span> <a name="id1001335-bb"></a>universal_day_ymd() ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id801108-bb"></a>universal_day() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1042020"></a><h3>
+<a name="id964665-bb"></a><code class="computeroutput">day_clock</code> private static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">::std::tm *</span> <a name="id858183-bb"></a>get_local_time(std::tm &amp; result) ;</pre></li>
+<li><pre class="literallayout"><span class="type">::std::tm *</span> <a name="id1036672-bb"></a>get_universal_time(std::tm &amp; result) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/date_time/date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1044589"><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="date_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/day_functor.html b/doc/html/day_functor.html
new file mode 100644
index 0000000000..c0d7b37d17
--- /dev/null
+++ b/doc/html/day_functor.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template day_functor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id797437" title="Header &lt;boost/date_time/adjust_functors.hpp&gt;">
+<link rel="prev" href="date_time/doxy.html" title="Library Reference">
+<link rel="next" href="month_functor.html" title="Class template month_functor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time/doxy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="month_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="day_functor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template day_functor</span></h2>
+<p>boost::date_time::day_functor &#8212; Functor to iterate a fixed number of days. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> day_functor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;
+
+  <span class="emphasis"><em>// <a href="day_functor.html#day_functorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="day_functor.html#id838613-bb">day_functor</a>(<span class="bold"><strong>int</strong></span>);
+
+  <span class="emphasis"><em>// <a href="day_functor.html#id1112276-bb">public member functions</a></em></span>
+  <span class="type">duration_type</span> <a href="day_functor.html#id1112281-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="day_functor.html#id1101073-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1038229"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1038232"></a><h3>
+<a name="day_functorconstruct-copy-destruct"></a><code class="computeroutput">day_functor</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id838613-bb"></a>day_functor(<span class="bold"><strong>int</strong></span> f);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1038272"></a><h3>
+<a name="id1112276-bb"></a><code class="computeroutput">day_functor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id1112281-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id1101073-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_time/doxy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="month_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/days_before_weekday.html b/doc/html/days_before_weekday.html
new file mode 100644
index 0000000000..fe3e12583e
--- /dev/null
+++ b/doc/html/days_before_weekday.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template days_before_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="days_until_weekday.html" title="Function template days_until_weekday">
+<link rel="next" href="next_weekday.html" title="Function template next_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="days_until_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="next_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="days_before_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template days_before_weekday</span></h2>
+<p>boost::date_time::days_before_weekday &#8212; Calculates the number of days since the previous weekday. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+  <span class="type">date_type::duration_type</span>
+  days_before_weekday(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> weekday_type &amp; wd);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076247"></a><h2>Description</h2>
+<p>Calculates the number of days since the previous weekday If the date given falls on a Sunday and the given weekday is Tuesday the result will be 5 days. The answer will be a positive number because Tuesday is 5 days before Sunday, not -5 days before. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="days_until_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="next_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/days_until_weekday.html b/doc/html/days_until_weekday.html
new file mode 100644
index 0000000000..4997d1d7bb
--- /dev/null
+++ b/doc/html/days_until_weekday.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template days_until_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="first_kday_before.html" title="Class template first_kday_before">
+<link rel="next" href="days_before_weekday.html" title="Function template days_before_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_before.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="days_before_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="days_until_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template days_until_weekday</span></h2>
+<p>boost::date_time::days_until_weekday &#8212; Calculates the number of days until the next weekday. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+  <span class="type">date_type::duration_type</span>
+  days_until_weekday(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> weekday_type &amp; wd);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076180"></a><h2>Description</h2>
+<p>Calculates the number of days until the next weekday. If the date given falls on a Sunday and the given weekday is Tuesday the result will be 2 days </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_before.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="days_before_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/dst_calc_engine.html b/doc/html/dst_calc_engine.html
new file mode 100644
index 0000000000..60d4ae79f7
--- /dev/null
+++ b/doc/html/dst_calc_engine.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template dst_calc_engine</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866029" title="Header &lt;boost/date_time/dst_rules.hpp&gt;">
+<link rel="prev" href="dst_calculator.html" title="Class template dst_calculator">
+<link rel="next" href="us_dst_rules.html" title="Class template us_dst_rules">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_calculator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="us_dst_rules.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="dst_calc_engine"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template dst_calc_engine</span></h2>
+<p>boost::date_time::dst_calc_engine &#8212; Compile-time configurable daylight savings time calculation engine. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> time_duration_type, <span class="bold"><strong>typename</strong></span> dst_traits&gt;
+<span class="bold"><strong>class</strong></span> dst_calc_engine {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type                            year_type;    
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type                        calendar_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="dst_calculator.html" title="Class template dst_calculator">dst_calculator</a>&lt; date_type, time_duration_type &gt; dstcalc;      
+
+  <span class="emphasis"><em>// <a href="dst_calc_engine.html#id1111389-bb">public static functions</a></em></span>
+  <span class="type">time_is_dst_result</span>
+  <a href="dst_calc_engine.html#id1074662-bb">local_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="dst_calc_engine.html#id1033622-bb">is_dst_boundary_day</a>(date_type) ;
+  <span class="type">time_duration_type</span> <a href="dst_calc_engine.html#id974604-bb">dst_offset</a>() ;
+  <span class="type">date_type</span> <a href="dst_calc_engine.html#id974622-bb">local_dst_start_day</a>(year_type) ;
+  <span class="type">date_type</span> <a href="dst_calc_engine.html#id901026-bb">local_dst_end_day</a>(year_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1081670"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1081673"></a><h3>
+<a name="id1111389-bb"></a><code class="computeroutput">dst_calc_engine</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id1074662-bb"></a>local_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre>
+<p>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+</p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1033622-bb"></a>is_dst_boundary_day(date_type d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id974604-bb"></a>dst_offset() ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id974622-bb"></a>local_dst_start_day(year_type year) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id901026-bb"></a>local_dst_end_day(year_type year) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_calculator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="us_dst_rules.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/dst_calculator.html b/doc/html/dst_calculator.html
new file mode 100644
index 0000000000..094d148107
--- /dev/null
+++ b/doc/html/dst_calculator.html
@@ -0,0 +1,172 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template dst_calculator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866029" title="Header &lt;boost/date_time/dst_rules.hpp&gt;">
+<link rel="prev" href="all_date_names_put.html" title="Class template all_date_names_put">
+<link rel="next" href="dst_calc_engine.html" title="Class template dst_calc_engine">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="all_date_names_put.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="dst_calc_engine.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="dst_calculator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template dst_calculator</span></h2>
+<p>boost::date_time::dst_calculator &#8212; Dynamic class used to caluclate dst transition information. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_&gt;
+<span class="bold"><strong>class</strong></span> dst_calculator {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_duration_type_ time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type_          date_type;         
+
+  <span class="emphasis"><em>// <a href="dst_calculator.html#id838110-bb">public static functions</a></em></span>
+  <span class="type">time_is_dst_result</span>
+  <a href="dst_calculator.html#id838116-bb">process_local_dst_start_day</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>long</strong></span>) ;
+  <span class="type">time_is_dst_result</span>
+  <a href="dst_calculator.html#id866718-bb">process_local_dst_end_day</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>long</strong></span>) ;
+  <span class="type">time_is_dst_result</span>
+  <a href="dst_calculator.html#id935826-bb">local_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               <span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               <span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_is_dst_result</span>
+  <a href="dst_calculator.html#id1110662-bb">local_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               <span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> date_type &amp;,
+               <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>long</strong></span>) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1081059"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1081063"></a><h3>
+<a name="id838110-bb"></a><code class="computeroutput">dst_calculator</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id838116-bb"></a>process_local_dst_start_day(<span class="bold"><strong>const</strong></span> time_duration_type &amp; time_of_day,
+                            <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_start_offset_minutes,
+                            <span class="bold"><strong>long</strong></span> dst_length_minutes) ;</pre>
+<p>On this dst transition, the time label between the transition boundary and the boudary + the offset are invalid times. If before the boundary then still not in dst.
+
+</p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">dst_length_minutes</span></dt>
+<dd><p>Number of minutes to adjust clock forward </p></dd>
+<dt><span class="term">dst_start_offset_minutes</span></dt>
+<dd><p>Local day offset for start of dst </p></dd>
+<dt><span class="term">time_of_day</span></dt>
+<dd><p>Time offset in the day for the local time </p></dd>
+</dl>
+</div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id866718-bb"></a>process_local_dst_end_day(<span class="bold"><strong>const</strong></span> time_duration_type &amp; time_of_day,
+                          <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_end_offset_minutes,
+                          <span class="bold"><strong>long</strong></span> dst_length_minutes) ;</pre>
+<p>This is the calculation for the DST end day. On that day times prior to the conversion time - dst_length (1 am in US) are still in dst. Times between the above and the switch time are ambiguous. Times after the start_offset are not in dst.
+
+</p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">dst_end_offset_minutes</span></dt>
+<dd><p>Local time of day for end of dst </p></dd>
+<dt><span class="term">time_of_day</span></dt>
+<dd><p>Time offset in the day for the local time </p></dd>
+</dl>
+</div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id935826-bb"></a>local_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; current_day,
+             <span class="bold"><strong>const</strong></span> time_duration_type &amp; time_of_day,
+             <span class="bold"><strong>const</strong></span> date_type &amp; dst_start_day,
+             <span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_start_offset,
+             <span class="bold"><strong>const</strong></span> date_type &amp; dst_end_day,
+             <span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_end_offset,
+             <span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_length_minutes) ;</pre>
+<p>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+
+</p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">current_day</span></dt>
+<dd><p>The day to check for dst </p></dd>
+<dt><span class="term">dst_end_day</span></dt>
+<dd><p>Ending day of dst for the given locality </p></dd>
+<dt><span class="term">dst_end_offset</span></dt>
+<dd><p>Time offset within day given in dst for dst boundary </p></dd>
+<dt><span class="term">dst_start_day</span></dt>
+<dd><p>Starting day of dst for the given locality </p></dd>
+<dt><span class="term">dst_start_offset</span></dt>
+<dd><p>Time offset within day for dst boundary </p></dd>
+<dt><span class="term">time_of_day</span></dt>
+<dd><p>Time offset within the day to check </p></dd>
+</dl>
+</div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id1110662-bb"></a>local_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; current_day,
+             <span class="bold"><strong>const</strong></span> time_duration_type &amp; time_of_day,
+             <span class="bold"><strong>const</strong></span> date_type &amp; dst_start_day,
+             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_start_offset_minutes,
+             <span class="bold"><strong>const</strong></span> date_type &amp; dst_end_day,
+             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_end_offset_minutes, <span class="bold"><strong>long</strong></span> dst_length_minutes) ;</pre>
+<p>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+
+</p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">current_day</span></dt>
+<dd><p>The day to check for dst </p></dd>
+<dt><span class="term">dst_end_day</span></dt>
+<dd><p>Ending day of dst for the given locality </p></dd>
+<dt><span class="term">dst_end_offset_minutes</span></dt>
+<dd><p>Offset within day given in dst for dst boundary (eg 120 for US which is 02:00:00) </p></dd>
+<dt><span class="term">dst_length_minutes</span></dt>
+<dd><p>Length of dst adjusment (eg: 60 for US) </p></dd>
+<dt><span class="term">dst_start_day</span></dt>
+<dd><p>Starting day of dst for the given locality </p></dd>
+<dt><span class="term">dst_start_offset_minutes</span></dt>
+<dd><p>Offset within day for dst boundary (eg 120 for US which is 02:00:00) </p></dd>
+<dt><span class="term">time_of_day</span></dt>
+<dd><p>Time offset within the day to check </p></dd>
+</dl>
+</div>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="all_date_names_put.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="dst_calc_engine.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/dst_day_calc_rule.html b/doc/html/dst_day_calc_rule.html
new file mode 100644
index 0000000000..4fe49768ff
--- /dev/null
+++ b/doc/html/dst_day_calc_rule.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template dst_day_calc_rule</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045441" title="Header &lt;boost/date_time/dst_transition_generators.hpp&gt;">
+<link rel="prev" href="null_dst_rules.html" title="Class template null_dst_rules">
+<link rel="next" href="day_calc_dst_rule.html" title="Class template day_calc_dst_rule">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="null_dst_rules.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045441"><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="day_calc_dst_rule.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="dst_day_calc_rule"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template dst_day_calc_rule</span></h2>
+<p>boost::date_time::dst_day_calc_rule &#8212; Defines base interface for calculating start and end date of daylight savings. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> dst_day_calc_rule {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type year_type;
+
+  <span class="emphasis"><em>// <a href="dst_day_calc_rule.html#dst_day_calc_ruleconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="dst_day_calc_rule.html#id1033889-bb">~dst_day_calc_rule</a>();
+
+  <span class="emphasis"><em>// <a href="dst_day_calc_rule.html#id928106-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a href="dst_day_calc_rule.html#id926393-bb">start_day</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="dst_day_calc_rule.html#id899436-bb">start_rule_as_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a href="dst_day_calc_rule.html#id899450-bb">end_day</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="dst_day_calc_rule.html#id892427-bb">end_rule_as_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1082707"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1082710"></a><h3>
+<a name="dst_day_calc_ruleconstruct-copy-destruct"></a><code class="computeroutput">dst_day_calc_rule</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1033889-bb"></a>~dst_day_calc_rule();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1082745"></a><h3>
+<a name="id928106-bb"></a><code class="computeroutput">dst_day_calc_rule</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a name="id926393-bb"></a>start_day(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id899436-bb"></a>start_rule_as_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a name="id899450-bb"></a>end_day(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id892427-bb"></a>end_rule_as_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="null_dst_rules.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045441"><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="day_calc_dst_rule.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/dst_not_valid.html b/doc/html/dst_not_valid.html
new file mode 100644
index 0000000000..a73e1ff889
--- /dev/null
+++ b/doc/html/dst_not_valid.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct dst_not_valid</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1106303" title="Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;">
+<link rel="prev" href="time_label_invalid.html" title="Struct time_label_invalid">
+<link rel="next" href="local_date_time_base.html" title="Class template local_date_time_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_label_invalid.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="local_date_time_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="dst_not_valid"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct dst_not_valid</span></h2>
+<p>boost::local_time::dst_not_valid &#8212; </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"><strong>struct</strong></span> dst_not_valid {
+  <span class="emphasis"><em>// <a href="dst_not_valid.html#dst_not_validconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="dst_not_valid.html#id868510-bb">dst_not_valid</a>(std::string = "");
+
+  <span class="emphasis"><em>// <a href="dst_not_valid.html#id1034672-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1181350"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1181354"></a><h3>
+<a name="dst_not_validconstruct-copy-destruct"></a><code class="computeroutput">dst_not_valid</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id868510-bb"></a>dst_not_valid(std::string _msg = "");</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1181387"></a><h3>
+<a name="id1034672-bb"></a><code class="computeroutput">dst_not_valid</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_label_invalid.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="local_date_time_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/duplicate_option_error.html b/doc/html/duplicate_option_error.html
new file mode 100644
index 0000000000..24aebdd9e5
--- /dev/null
+++ b/doc/html/duplicate_option_error.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class duplicate_option_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id835103" title="Header &lt;boost/program_options/options_description.hpp&gt;">
+<link rel="prev" href="basic_option.html" title="Class template basic_option">
+<link rel="next" href="option_description.html" title="Class option_description">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="option_description.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="duplicate_option_error"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class duplicate_option_error</span></h2>
+<p>boost::program_options::duplicate_option_error &#8212; </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"><strong>class</strong></span> duplicate_option_error : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="duplicate_option_error.html#duplicate_option_errorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="duplicate_option_error.html#id752812-bb">duplicate_option_error</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="duplicate_option_error.html#id1104010-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1252329"></a><h2>Description</h2>
+<p>Class thrown when duplicate option description is found. </p>
+<div class="refsect2" lang="en">
+<a name="id1252336"></a><h3>
+<a name="duplicate_option_errorconstruct-copy-destruct"></a><code class="computeroutput">duplicate_option_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id752812-bb"></a>duplicate_option_error(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1252376"></a><h3>
+<a name="id1104010-bb"></a><code class="computeroutput">duplicate_option_error</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="option_description.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/duration_from_string.html b/doc/html/duration_from_string.html
new file mode 100644
index 0000000000..55fc4f7026
--- /dev/null
+++ b/doc/html/duration_from_string.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function duration_from_string</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id931047" title="Header &lt;boost/date_time/posix_time/time_parsers.hpp&gt;">
+<link rel="prev" href="ptime.html" title="Class ptime">
+<link rel="next" href="custom_time_zone.html" title="Class custom_time_zone">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ptime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id931047"><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="custom_time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="duration_from_string"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function duration_from_string</span></h2>
+<p>boost::posix_time::duration_from_string &#8212; Creates a time_duration object from a delimited string. </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="type"><a href="id937125.html" title="Class time_duration">time_duration</a></span> duration_from_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1178913"></a><h2>Description</h2>
+<p>Expected format for string is "[-]h[h][:mm][:ss][.fff]". A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ptime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id931047"><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="custom_time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/duration_traits_adapted.html b/doc/html/duration_traits_adapted.html
new file mode 100644
index 0000000000..70d1a58384
--- /dev/null
+++ b/doc/html/duration_traits_adapted.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct duration_traits_adapted</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id729918" title="Header &lt;boost/date_time/date_duration.hpp&gt;">
+<link rel="prev" href="duration_traits_long.html" title="Struct duration_traits_long">
+<link rel="next" href="weeks_duration.html" title="Class template weeks_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_traits_long.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="weeks_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="duration_traits_adapted"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct duration_traits_adapted</span></h2>
+<p>boost::date_time::duration_traits_adapted &#8212; </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"><strong>struct</strong></span> duration_traits_adapted {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>long</strong></span>                                  int_type; 
+  <span class="bold"><strong>typedef</strong></span> <a href="int_adapter.html" title="Class template int_adapter">boost::date_time::int_adapter</a>&lt; <span class="bold"><strong>long</strong></span> &gt; impl_type;
+
+  <span class="emphasis"><em>// <a href="duration_traits_adapted.html#id859639-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="duration_traits_adapted.html#id859644-bb">as_number</a>(impl_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1043388"></a><h2>Description</h2>
+<p>Struct for instantiating date_duration <span class="bold"><strong>WITH</strong></span> special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or date_duration&lt;int_adapter&lt;long&gt; &gt; </p>
+<div class="refsect2" lang="en">
+<a name="id1043405"></a><h3>
+<a name="id859639-bb"></a><code class="computeroutput">duration_traits_adapted</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">int_type</span> <a name="id859644-bb"></a>as_number(impl_type i) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_traits_long.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="weeks_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/duration_traits_long.html b/doc/html/duration_traits_long.html
new file mode 100644
index 0000000000..ed301f71dc
--- /dev/null
+++ b/doc/html/duration_traits_long.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct duration_traits_long</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id729918" title="Header &lt;boost/date_time/date_duration.hpp&gt;">
+<link rel="prev" href="date_duration.html" title="Class template date_duration">
+<link rel="next" href="duration_traits_adapted.html" title="Struct duration_traits_adapted">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="duration_traits_adapted.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="duration_traits_long"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct duration_traits_long</span></h2>
+<p>boost::date_time::duration_traits_long &#8212; </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"><strong>struct</strong></span> duration_traits_long {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>long</strong></span> int_type; 
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>long</strong></span> impl_type;
+
+  <span class="emphasis"><em>// <a href="duration_traits_long.html#id966541-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="duration_traits_long.html#id932488-bb">as_number</a>(impl_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1043249"></a><h2>Description</h2>
+<p>Struct for instantiating date_duration with <span class="bold"><strong>NO</strong></span> special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or date_duration&lt;int_adapter&lt;long&gt; &gt; </p>
+<div class="refsect2" lang="en">
+<a name="id1043266"></a><h3>
+<a name="id966541-bb"></a><code class="computeroutput">duration_traits_long</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">int_type</span> <a name="id932488-bb"></a>as_number(impl_type i) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id729918"><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="duration_traits_adapted.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/empty_formatter.html b/doc/html/empty_formatter.html
new file mode 100644
index 0000000000..9917e1842d
--- /dev/null
+++ b/doc/html/empty_formatter.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template empty_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1213774" title="Header &lt;boost/algorithm/string/formatter.hpp&gt;">
+<link rel="prev" href="identity_formatter.html" title="Function template identity_formatter">
+<link rel="next" href="starts_with.html" title="Function starts_with">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="identity_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="starts_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="empty_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template empty_formatter</span></h2>
+<p>boost::algorithm::empty_formatter &#8212; Empty formatter. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> empty_formatter(<span class="bold"><strong>const</strong></span> RangeT &amp; );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325775"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">empty_formatter</code> . Empty formatter always returns an empty sequence.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">empty_formatter</code> object. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="identity_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="starts_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ends_with.html b/doc/html/ends_with.html
new file mode 100644
index 0000000000..36c1ebc44d
--- /dev/null
+++ b/doc/html/ends_with.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ends_with</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="istarts_with.html" title="Function template istarts_with">
+<link rel="next" href="iends_with.html" title="Function template iends_with">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="istarts_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="iends_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ends_with"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ends_with</span></h2>
+<p>boost::algorithm::ends_with &#8212; 'Ends with' predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> ends_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test, PredicateT Comp);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> ends_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1326864"></a><h2>Description</h2>
+<p>This predicate holds when the test string is a suffix of the Input. In other words, if the input ends with the test. When the optional predicate is specified, it is used for character-wise comparison.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Comp</span></dt>
+<dd><p>An element comparison predicate </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="istarts_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="iends_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/environment_iterator.html b/doc/html/environment_iterator.html
new file mode 100644
index 0000000000..eaf9e5ccd3
--- /dev/null
+++ b/doc/html/environment_iterator.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class environment_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id939963" title="Header &lt;boost/program_options/environment_iterator.hpp&gt;">
+<link rel="prev" href="id801451.html" title="Type style_t">
+<link rel="next" href="eof_iterator.html" title="Class template eof_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id801451.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id939963"><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="eof_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="environment_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class environment_iterator</span></h2>
+<p>boost::environment_iterator &#8212; </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"><strong>class</strong></span> environment_iterator
+ : : <span class="bold"><strong>public</strong></span> boost::eof_iterator&lt; Derived, ValueType &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="environment_iterator.html#environment_iteratorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="environment_iterator.html#id1105659-bb">environment_iterator</a>(<span class="bold"><strong>char</strong></span> **);
+  <a href="environment_iterator.html#id1137966-bb">environment_iterator</a>();
+
+  <span class="emphasis"><em>// <a href="environment_iterator.html#id902781-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="environment_iterator.html#id871284-bb">get</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1249036"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1249039"></a><h3>
+<a name="environment_iteratorconstruct-copy-destruct"></a><code class="computeroutput">environment_iterator</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1105659-bb"></a>environment_iterator(<span class="bold"><strong>char</strong></span> ** environment);</pre></li>
+<li><pre class="literallayout"><a name="id1137966-bb"></a>environment_iterator();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1249093"></a><h3>
+<a name="id902781-bb"></a><code class="computeroutput">environment_iterator</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id871284-bb"></a>get() ;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id801451.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id939963"><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="eof_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/eof_iterator.html b/doc/html/eof_iterator.html
new file mode 100644
index 0000000000..a0dd2a362c
--- /dev/null
+++ b/doc/html/eof_iterator.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template eof_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id1006480" title="Header &lt;boost/program_options/eof_iterator.hpp&gt;">
+<link rel="prev" href="environment_iterator.html" title="Class environment_iterator">
+<link rel="next" href="ambiguous_option.html" title="Class ambiguous_option">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="environment_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id1006480"><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="ambiguous_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="eof_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template eof_iterator</span></h2>
+<p>boost::eof_iterator &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Derived, <span class="bold"><strong>typename</strong></span> ValueType&gt;
+<span class="bold"><strong>class</strong></span> eof_iterator {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="eof_iterator.html#eof_iteratorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="eof_iterator.html#id1137933-bb">eof_iterator</a>();
+
+  <span class="emphasis"><em>// <a href="eof_iterator.html#id697184-bb">public member functions</a></em></span>
+
+  <span class="emphasis"><em>// <a href="eof_iterator.html#id871332-bb">protected member functions</a></em></span>
+  <span class="type">ValueType &amp;</span> <a href="eof_iterator.html#id964029-bb">value</a>() ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="eof_iterator.html#id1080792-bb">found_eof</a>() ;
+
+  <span class="emphasis"><em>// <a href="eof_iterator.html#id822103-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="eof_iterator.html#id723222-bb">increment</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="eof_iterator.html#id653552-bb">equal</a>(<span class="bold"><strong>const</strong></span> <a href="eof_iterator.html" title="Class template eof_iterator">eof_iterator</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> ValueType &amp;</span> <a href="eof_iterator.html#id1000012-bb">dereference</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1249383"></a><h2>Description</h2>
+<p>The 'eof_iterator' class is useful for constructing forward iterators in cases where iterator extract data from some source and it's easy to detect 'eof' -- i.e. the situation where there's no data. One apparent example is reading lines from a file.</p>
+<p>Implementing such iterators using 'iterator_facade' directly would require to create class with three core operation, a couple of constructors. When using 'eof_iterator', the derived class should define only one method to get new value, plus a couple of constructors.</p>
+<p>The basic idea is that iterator has 'eof' bit. Two iterators are equal only if both have their 'eof' bits set. The 'get' method either obtains the new value or sets the 'eof' bit.</p>
+<p>Specifically, derived class should define:</p>
+<p>1. A default constructor, which creates iterator with 'eof' bit set. The constructor body should call 'found_eof' method defined here. 2. Some other constructor. It should initialize some 'data pointer' used in iterator operation and then call 'get'. 3. The 'get' method. It should operate this way:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>look at some 'data pointer' to see if new element is available; if not, it should call 'found_eof'.</p></li>
+<li><p>extract new element and store it at location returned by the 'value' method.</p></li>
+<li><p>advance the data pointer.</p></li>
+</ul></div>
+<p>Essentially, the 'get' method has the functionality of both 'increment' and 'dereference'. It's very good for the cases where data extraction implicitly moves data pointer, like for stream operation. </p>
+<div class="refsect2" lang="en">
+<a name="id1249435"></a><h3>
+<a name="eof_iteratorconstruct-copy-destruct"></a><code class="computeroutput">eof_iterator</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1137933-bb"></a>eof_iterator();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1249468"></a><h3>
+<a name="id697184-bb"></a><code class="computeroutput">eof_iterator</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1249486"></a><h3>
+<a name="id871332-bb"></a><code class="computeroutput">eof_iterator</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">ValueType &amp;</span> <a name="id964029-bb"></a>value() ;</pre>
+<p>Returns the reference which should be used by derived class to store the next value. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1080792-bb"></a>found_eof() ;</pre>
+<p>Should be called by derived class to indicate that it can't produce next element. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1249549"></a><h3>
+<a name="id822103-bb"></a><code class="computeroutput">eof_iterator</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id723222-bb"></a>increment() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id653552-bb"></a>equal(<span class="bold"><strong>const</strong></span> <a href="eof_iterator.html" title="Class template eof_iterator">eof_iterator</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> ValueType &amp;</span> <a name="id1000012-bb"></a>dereference() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="environment_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id1006480"><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="ambiguous_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/equals.html b/doc/html/equals.html
new file mode 100644
index 0000000000..3cfd54e84c
--- /dev/null
+++ b/doc/html/equals.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function equals</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="icontains.html" title="Function template icontains">
+<link rel="next" href="iequals.html" title="Function template iequals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="icontains.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="iequals.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="equals"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function equals</span></h2>
+<p>boost::algorithm::equals &#8212; 'Equals' predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> equals(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test, PredicateT Comp);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> equals(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1327427"></a><h2>Description</h2>
+<p>This predicate holds when the test container is equal to the input container i.e. all elements in both containers are same. When the optional predicate is specified, it is used for character-wise comparison.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Comp</span></dt>
+<dd><p>An element comparison predicate </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is a two-way version of <code class="computeroutput">std::equal</code> algorithm<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="icontains.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="iequals.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_all.html b/doc/html/erase_all.html
new file mode 100644
index 0000000000..cb9e388b73
--- /dev/null
+++ b/doc/html/erase_all.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_all_copy.html" title="Function erase_all_copy">
+<link rel="next" href="ierase_all_copy.html" title="Function ierase_all_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_all</span></h2>
+<p>boost::algorithm::erase_all &#8212; Erase all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_all(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319104"></a><h2>Description</h2>
+<p>Remove all the occurrences of the string from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_all_copy.html b/doc/html/erase_all_copy.html
new file mode 100644
index 0000000000..a0c64e6306
--- /dev/null
+++ b/doc/html/erase_all_copy.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_all_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_nth.html" title="Function template ierase_nth">
+<link rel="next" href="erase_all.html" title="Function template erase_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_all_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_all_copy</span></h2>
+<p>boost::algorithm::erase_all_copy &#8212; Erase all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_all_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                 <span class="bold"><strong>const</strong></span> Range2T &amp; Search);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> erase_all_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318993"></a><h2>Description</h2>
+<p>Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_all_regex.html b/doc/html/erase_all_regex.html
new file mode 100644
index 0000000000..f955dfc710
--- /dev/null
+++ b/doc/html/erase_all_regex.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_all_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="erase_all_regex_copy.html" title="Function erase_all_regex_copy">
+<link rel="next" href="find_all_regex.html" title="Function template find_all_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="find_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_all_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_all_regex</span></h2>
+<p>boost::algorithm::erase_all_regex &#8212; Erase all regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_all_regex(SequenceT &amp; Input,
+                       <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                       match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347620"></a><h2>Description</h2>
+<p>Erase all substrings, matching given regex, from the input. The input string is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="find_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_all_regex_copy.html b/doc/html/erase_all_regex_copy.html
new file mode 100644
index 0000000000..2d22ec56c4
--- /dev/null
+++ b/doc/html/erase_all_regex_copy.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_all_regex_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="erase_regex.html" title="Function template erase_regex">
+<link rel="next" href="erase_all_regex.html" title="Function template erase_all_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_all_regex_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_all_regex_copy</span></h2>
+<p>boost::algorithm::erase_all_regex_copy &#8212; Erase all regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_all_regex_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                       <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                       match_flag_type Flags = match_default);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">SequenceT</span> erase_all_regex_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                                 <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                                 match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347490"></a><h2>Description</h2>
+<p>Erase all substrings, matching given regex, from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_first.html b/doc/html/erase_first.html
new file mode 100644
index 0000000000..25e45b46f2
--- /dev/null
+++ b/doc/html/erase_first.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_first_copy.html" title="Function erase_first_copy">
+<link rel="next" href="ierase_first_copy.html" title="Function ierase_first_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_first</span></h2>
+<p>boost::algorithm::erase_first &#8212; Erase first algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_first(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317443"></a><h2>Description</h2>
+<p>Remove the first occurrence of the substring from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_first_copy.html b/doc/html/erase_first_copy.html
new file mode 100644
index 0000000000..10e4412b32
--- /dev/null
+++ b/doc/html/erase_first_copy.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_first_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_range.html" title="Function template erase_range">
+<link rel="next" href="erase_first.html" title="Function template erase_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_first_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_first_copy</span></h2>
+<p>boost::algorithm::erase_first_copy &#8212; Erase first algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_first_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                   <span class="bold"><strong>const</strong></span> Range2T &amp; Search);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> erase_first_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317332"></a><h2>Description</h2>
+<p>Remove the first occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_head.html b/doc/html/erase_head.html
new file mode 100644
index 0000000000..865d92abbf
--- /dev/null
+++ b/doc/html/erase_head.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_head</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_head_copy.html" title="Function erase_head_copy">
+<link rel="next" href="erase_tail_copy.html" title="Function erase_tail_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_head_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_tail_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_head"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_head</span></h2>
+<p>boost::algorithm::erase_head &#8212; Erase head algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_head(SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319624"></a><h2>Description</h2>
+<p>Remove the head from the input. The head is a prefix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_head_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_tail_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_head_copy.html b/doc/html/erase_head_copy.html
new file mode 100644
index 0000000000..e76d31fe4d
--- /dev/null
+++ b/doc/html/erase_head_copy.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_head_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_all.html" title="Function template ierase_all">
+<link rel="next" href="erase_head.html" title="Function template erase_head">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_head_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_head_copy</span></h2>
+<p>boost::algorithm::erase_head_copy &#8212; Erase head algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_head_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                  <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> erase_head_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319512"></a><h2>Description</h2>
+<p>Remove the head from the input. The head is a prefix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_last.html b/doc/html/erase_last.html
new file mode 100644
index 0000000000..552d690595
--- /dev/null
+++ b/doc/html/erase_last.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_last_copy.html" title="Function erase_last_copy">
+<link rel="next" href="ierase_last_copy.html" title="Function ierase_last_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_last</span></h2>
+<p>boost::algorithm::erase_last &#8212; Erase last algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_last(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317965"></a><h2>Description</h2>
+<p>Remove the last occurrence of the substring from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_last_copy.html b/doc/html/erase_last_copy.html
new file mode 100644
index 0000000000..79c49b3888
--- /dev/null
+++ b/doc/html/erase_last_copy.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_last_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_first.html" title="Function template ierase_first">
+<link rel="next" href="erase_last.html" title="Function template erase_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_last_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_last_copy</span></h2>
+<p>boost::algorithm::erase_last_copy &#8212; Erase last algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_last_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                  <span class="bold"><strong>const</strong></span> Range2T &amp; Search);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> erase_last_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317853"></a><h2>Description</h2>
+<p>Remove the last occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_nth.html b/doc/html/erase_nth.html
new file mode 100644
index 0000000000..485278d6b1
--- /dev/null
+++ b/doc/html/erase_nth.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_nth_copy.html" title="Function erase_nth_copy">
+<link rel="next" href="ierase_nth_copy.html" title="Function ierase_nth_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_nth</span></h2>
+<p>boost::algorithm::erase_nth &#8212; Erase nth algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_nth(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318528"></a><h2>Description</h2>
+<p>Remove the Nth occurrence of the substring in the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_nth_copy.html b/doc/html/erase_nth_copy.html
new file mode 100644
index 0000000000..a163ade668
--- /dev/null
+++ b/doc/html/erase_nth_copy.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_nth_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_last.html" title="Function template ierase_last">
+<link rel="next" href="erase_nth.html" title="Function template erase_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_nth_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_nth_copy</span></h2>
+<p>boost::algorithm::erase_nth_copy &#8212; Erase nth algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_nth_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                 <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> erase_nth_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                           <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318398"></a><h2>Description</h2>
+<p>Remove the Nth occurrence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_range.html b/doc/html/erase_range.html
new file mode 100644
index 0000000000..b9f8830f9e
--- /dev/null
+++ b/doc/html/erase_range.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_range</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_range_copy.html" title="Function erase_range_copy">
+<link rel="next" href="erase_first_copy.html" title="Function erase_first_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_range_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_range"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_range</span></h2>
+<p>boost::algorithm::erase_range &#8212; Erase range algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_range(SequenceT &amp; Input,
+                   <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_iterator&lt; SequenceT &gt;::type &gt; &amp; SearchRange);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317204"></a><h2>Description</h2>
+<p>Remove the given range from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">SearchRange</span></dt>
+<dd><p>A range in the input to be removed </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_range_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_range_copy.html b/doc/html/erase_range_copy.html
new file mode 100644
index 0000000000..9588a6b64a
--- /dev/null
+++ b/doc/html/erase_range_copy.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_range_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="id1178955.html" title="Type token_compress_mode_type">
+<link rel="next" href="erase_range.html" title="Function template erase_range">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1178955.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_range_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_range_copy</span></h2>
+<p>boost::algorithm::erase_range_copy &#8212; Erase range algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_range_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                   <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; RangeT &gt;::type &gt; &amp; SearchRange);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> erase_range_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                             <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; SequenceT &gt;::type &gt; &amp; SearchRange);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317091"></a><h2>Description</h2>
+<p>Remove the given range from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">SearchRange</span></dt>
+<dd><p>A range in the input to be removed </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1178955.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_regex.html b/doc/html/erase_regex.html
new file mode 100644
index 0000000000..526af9a285
--- /dev/null
+++ b/doc/html/erase_regex.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="erase_regex_copy.html" title="Function erase_regex_copy">
+<link rel="next" href="erase_all_regex_copy.html" title="Function erase_all_regex_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_all_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_regex</span></h2>
+<p>boost::algorithm::erase_regex &#8212; Erase regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_regex(SequenceT &amp; Input,
+                   <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                   match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347334"></a><h2>Description</h2>
+<p>Remove a substring matching given regex from the input. The input string is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_all_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_regex_copy.html b/doc/html/erase_regex_copy.html
new file mode 100644
index 0000000000..cf34579d80
--- /dev/null
+++ b/doc/html/erase_regex_copy.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_regex_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="replace_all_regex.html" title="Function template replace_all_regex">
+<link rel="next" href="erase_regex.html" title="Function template erase_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_regex_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_regex_copy</span></h2>
+<p>boost::algorithm::erase_regex_copy &#8212; Erase regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_regex_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                   <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                   match_flag_type Flags = match_default);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">SequenceT</span> erase_regex_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                             <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                             match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347205"></a><h2>Description</h2>
+<p>Remove a substring matching given regex from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_tail.html b/doc/html/erase_tail.html
new file mode 100644
index 0000000000..580143034c
--- /dev/null
+++ b/doc/html/erase_tail.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template erase_tail</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_tail_copy.html" title="Function erase_tail_copy">
+<link rel="next" href="find.html" title="Function template find">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_tail_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="find.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_tail"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template erase_tail</span></h2>
+<p>boost::algorithm::erase_tail &#8212; Erase tail algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> erase_tail(SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319864"></a><h2>Description</h2>
+<p>Remove the tail from the input. The tail is a suffix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_tail_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="find.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/erase_tail_copy.html b/doc/html/erase_tail_copy.html
new file mode 100644
index 0000000000..2c4d52fac1
--- /dev/null
+++ b/doc/html/erase_tail_copy.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function erase_tail_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_head.html" title="Function template erase_head">
+<link rel="next" href="erase_tail.html" title="Function template erase_tail">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="erase_tail_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function erase_tail_copy</span></h2>
+<p>boost::algorithm::erase_tail_copy &#8212; Erase tail algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">OutputIteratorT</span>
+  erase_tail_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                  <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> erase_tail_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319752"></a><h2>Description</h2>
+<p>Remove the tail from the input. The tail is a suffix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/error.html b/doc/html/error.html
new file mode 100644
index 0000000000..3c2658678e
--- /dev/null
+++ b/doc/html/error.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="ambiguous_option.html" title="Class ambiguous_option">
+<link rel="next" href="invalid_command_line_style.html" title="Class invalid_command_line_style">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ambiguous_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_command_line_style.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="error"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class error</span></h2>
+<p>boost::program_options::error &#8212; </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"><strong>class</strong></span> error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="error.html#errorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="error.html#id1138174-bb">error</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="error.html#id1046366-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250105"></a><h2>Description</h2>
+<p>Base class for all errors in the library. </p>
+<div class="refsect2" lang="en">
+<a name="id1250111"></a><h3>
+<a name="errorconstruct-copy-destruct"></a><code class="computeroutput">error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1138174-bb"></a>error(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250150"></a><h3>
+<a name="id1046366-bb"></a><code class="computeroutput">error</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ambiguous_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_command_line_style.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/eu_dst_trait.html b/doc/html/eu_dst_trait.html
new file mode 100644
index 0000000000..5f3df9db6b
--- /dev/null
+++ b/doc/html/eu_dst_trait.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template eu_dst_trait</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941196" title="Header &lt;boost/date_time/local_timezone_defs.hpp&gt;">
+<link rel="prev" href="us_dst_trait.html" title="Struct template us_dst_trait">
+<link rel="next" href="uk_dst_trait.html" title="Struct template uk_dst_trait">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="us_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="uk_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="eu_dst_trait"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template eu_dst_trait</span></h2>
+<p>boost::date_time::eu_dst_trait &#8212; Rules for daylight savings start in the EU (Last Sun in Mar). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>struct</strong></span> eu_dst_trait {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type                day_of_week_type;  
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                      month_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt; start_rule_functor;
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt; end_rule_functor;  
+
+  <span class="emphasis"><em>// <a href="eu_dst_trait.html#id822473-bb">public static functions</a></em></span>
+  <span class="type">day_of_week_type</span> <a href="eu_dst_trait.html#id930448-bb">start_day</a>() ;
+  <span class="type">month_type</span> <a href="eu_dst_trait.html#id856476-bb">start_month</a>() ;
+  <span class="type">day_of_week_type</span> <a href="eu_dst_trait.html#id856489-bb">end_day</a>() ;
+  <span class="type">month_type</span> <a href="eu_dst_trait.html#id968648-bb">end_month</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="eu_dst_trait.html#id968660-bb">dst_start_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="eu_dst_trait.html#id968673-bb">dst_end_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="eu_dst_trait.html#id968686-bb">dst_shift_length_minutes</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1109722"></a><h2>Description</h2>
+<p>These amount to the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Start of dst day is last Sunday in March</p></li>
+<li><p>End day of dst is last Sunday in Oct</p></li>
+<li><p>Going forward switch time is 2:00 am (offset 120 minutes)</p></li>
+<li><p>Going back switch time is 3:00 am (off set 180 minutes)</p></li>
+<li><p>Shift duration is one hour (60 minutes) </p></li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1109749"></a><h3>
+<a name="id822473-bb"></a><code class="computeroutput">eu_dst_trait</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id930448-bb"></a>start_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id856476-bb"></a>start_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id856489-bb"></a>end_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id968648-bb"></a>end_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id968660-bb"></a>dst_start_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id968673-bb"></a>dst_end_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id968686-bb"></a>dst_shift_length_minutes() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="us_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="uk_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find.html b/doc/html/find.html
new file mode 100644
index 0000000000..cc0c7b5773
--- /dev/null
+++ b/doc/html/find.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="erase_tail.html" title="Function template erase_tail">
+<link rel="next" href="find_first.html" title="Function template find_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find</span></h2>
+<p>boost::algorithm::find &#8212; Generic find algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  find(RangeT &amp; Input, FinderT Finder);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1320444"></a><h2>Description</h2>
+<p>Search the input using the given finder.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Finder</span></dt>
+<dd><p>Finder object used for searching. </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">RangeT::iterator</code> or <code class="computeroutput">RangeT::const_iterator</code> , depending on the constness of the input parameter. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_all.html b/doc/html/find_all.html
new file mode 100644
index 0000000000..b19e6775be
--- /dev/null
+++ b/doc/html/find_all.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1147531" title="Header &lt;boost/algorithm/string/split.hpp&gt;">
+<link rel="prev" href="has_stable_iterators.html" title="Class template has_stable_iterators">
+<link rel="next" href="ifind_all.html" title="Function template ifind_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_stable_iterators.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="ifind_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_all</span></h2>
+<p>boost::algorithm::find_all &#8212; Find all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceSequenceT &amp;</span>
+  find_all(SequenceSequenceT &amp; Result, Range1T &amp; Input,
+           <span class="bold"><strong>const</strong></span> Range2T &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354651"></a><h2>Description</h2>
+<p>This algorithm finds all occurrences of the search string in the input.</p>
+<p>Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Result</span></dt>
+<dd><p>A container that can hold copies of references to the substrings </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference the result<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Prior content of the result will be overwritten.<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_stable_iterators.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="ifind_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_all_regex.html b/doc/html/find_all_regex.html
new file mode 100644
index 0000000000..3c77762300
--- /dev/null
+++ b/doc/html/find_all_regex.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_all_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="erase_all_regex.html" title="Function template erase_all_regex">
+<link rel="next" href="split_regex.html" title="Function template split_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="split_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_all_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_all_regex</span></h2>
+<p>boost::algorithm::find_all_regex &#8212; Find all regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">SequenceSequenceT &amp;</span>
+  find_all_regex(SequenceSequenceT &amp; Result, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                 <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                 match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347732"></a><h2>Description</h2>
+<p>This algorithm finds all substrings matching the give regex in the input.</p>
+<p>Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Result</span></dt>
+<dd><p>A container that can hold copies of references to the substrings. </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference to the result<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Prior content of the result will be overwritten.<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="split_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_first.html b/doc/html/find_first.html
new file mode 100644
index 0000000000..939e4ff205
--- /dev/null
+++ b/doc/html/find_first.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find.html" title="Function template find">
+<link rel="next" href="ifind_first.html" title="Function template ifind_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_first</span></h2>
+<p>boost::algorithm::find_first &#8212; Find first algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  find_first(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1320558"></a><h2>Description</h2>
+<p>Search for the first occurence of the substring in the input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">RangeT::iterator</code> or <code class="computeroutput">RangeT::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_format.html b/doc/html/find_format.html
new file mode 100644
index 0000000000..8747515f49
--- /dev/null
+++ b/doc/html/find_format.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_format</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="find_format_copy.html" title="Function find_format_copy">
+<link rel="next" href="find_format_all_copy.html" title="Function find_format_all_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_format"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_format</span></h2>
+<p>boost::algorithm::find_format &#8212; Generic replace algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> find_format(SequenceT &amp; Input, FinderT Finder, FormatterT Formatter);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322306"></a><h2>Description</h2>
+<p>Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. The input is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Finder</span></dt>
+<dd><p>A Finder object used to search for a match to be replaced </p></dd>
+<dt><span class="term">Formatter</span></dt>
+<dd><p>A Formatter object used to format a match </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_format_all.html b/doc/html/find_format_all.html
new file mode 100644
index 0000000000..ba08638dc0
--- /dev/null
+++ b/doc/html/find_format_all.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_format_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="find_format_all_copy.html" title="Function find_format_all_copy">
+<link rel="next" href="id685080.html" title="Function template regex_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="id685080.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_format_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_format_all</span></h2>
+<p>boost::algorithm::find_format_all &#8212; Generic replace all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> find_format_all(SequenceT &amp; Input, FinderT Finder,
+                       FormatterT Formatter);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322573"></a><h2>Description</h2>
+<p>Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. Repeat this for all matching substrings.The input is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Finder</span></dt>
+<dd><p>A Finder object used to search for a match to be replaced </p></dd>
+<dt><span class="term">Formatter</span></dt>
+<dd><p>A Formatter object used to format a match </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="id685080.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_format_all_copy.html b/doc/html/find_format_all_copy.html
new file mode 100644
index 0000000000..a3e5a99a5d
--- /dev/null
+++ b/doc/html/find_format_all_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function find_format_all_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="find_format.html" title="Function template find_format">
+<link rel="next" href="find_format_all.html" title="Function template find_format_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_format_all_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function find_format_all_copy</span></h2>
+<p>boost::algorithm::find_format_all_copy &#8212; Generic replace all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT,
+         <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type">OutputIteratorT</span>
+  find_format_all_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                       FinderT Finder, FormatterT Formatter);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type">SequenceT</span> find_format_all_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, FinderT Finder,
+                                 FormatterT Formatter);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322456"></a><h2>Description</h2>
+<p>Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. Repeat this for all matching substrings. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Finder</span></dt>
+<dd><p>A Finder object used to search for a match to be replaced </p></dd>
+<dt><span class="term">Formatter</span></dt>
+<dd><p>A Formatter object used to format a match </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_format_copy.html b/doc/html/find_format_copy.html
new file mode 100644
index 0000000000..ddedad10be
--- /dev/null
+++ b/doc/html/find_format_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function find_format_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="find_token.html" title="Function template find_token">
+<link rel="next" href="find_format.html" title="Function template find_format">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_token.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_format_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function find_format_copy</span></h2>
+<p>boost::algorithm::find_format_copy &#8212; Generic replace algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT,
+         <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type">OutputIteratorT</span>
+  find_format_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                   FinderT Finder, FormatterT Formatter);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+  <span class="type">SequenceT</span> find_format_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, FinderT Finder,
+                             FormatterT Formatter);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322190"></a><h2>Description</h2>
+<p>Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Finder</span></dt>
+<dd><p>A Finder object used to search for a match to be replaced </p></dd>
+<dt><span class="term">Formatter</span></dt>
+<dd><p>A Formatter object used to format a match </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_token.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_head.html b/doc/html/find_head.html
new file mode 100644
index 0000000000..25377d8021
--- /dev/null
+++ b/doc/html/find_head.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_head</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="ifind_nth.html" title="Function template ifind_nth">
+<link rel="next" href="find_tail.html" title="Function template find_tail">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_head"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_head</span></h2>
+<p>boost::algorithm::find_head &#8212; Find head algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  find_head(RangeT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1321374"></a><h2>Description</h2>
+<p>Get the head of the input. Head is a prefix of the string of the given size. If the input is shorter then required, whole input if considered to be the head.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_iterator.html b/doc/html/find_iterator.html
new file mode 100644
index 0000000000..bf393c3d34
--- /dev/null
+++ b/doc/html/find_iterator.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template find_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1113894" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">
+<link rel="prev" href="id1171494.html" title="Function template regex_formatter">
+<link rel="next" href="split_iterator.html" title="Class template split_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1171494.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="split_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template find_iterator</span></h2>
+<p>boost::algorithm::find_iterator &#8212; find_iterator </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> IteratorT&gt;
+<span class="bold"><strong>class</strong></span> find_iterator {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="find_iterator.html#find_iteratorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="find_iterator.html#id1138856-bb">find_iterator</a>();
+  <a href="find_iterator.html#id1209314-bb">find_iterator</a>(<span class="bold"><strong>const</strong></span> <a href="find_iterator.html" title="Class template find_iterator">find_iterator</a> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT&gt; <a href="find_iterator.html#id1173158-bb">find_iterator</a>(IteratorT, IteratorT, FinderT);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> RangeT&gt; <a href="find_iterator.html#id1179053-bb">find_iterator</a>(RangeT &amp;, FinderT);
+
+  <span class="emphasis"><em>// <a href="find_iterator.html#id1149827-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="find_iterator.html#id754748-bb">eof</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="find_iterator.html#id1210798-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> match_type &amp;</span> <a href="find_iterator.html#id1113880-bb">dereference</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="find_iterator.html#id1066809-bb">increment</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="find_iterator.html#id1174062-bb">equal</a>(<span class="bold"><strong>const</strong></span> <a href="find_iterator.html" title="Class template find_iterator">find_iterator</a> &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1323276"></a><h2>Description</h2>
+<p>Find iterator encapsulates a Finder and allows for incremental searching in a string. Each increment moves the iterator to the next match.</p>
+<p>Find iterator is a readable forward traversal iterator.</p>
+<p>Dereferencing the iterator yields an iterator_range delimiting the current match. </p>
+<div class="refsect2" lang="en">
+<a name="id1323291"></a><h3>
+<a name="find_iteratorconstruct-copy-destruct"></a><code class="computeroutput">find_iterator</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1138856-bb"></a>find_iterator();</pre>
+<p>Construct null iterator. All null iterators are equal.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ eof()==true </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1209314-bb"></a>find_iterator(<span class="bold"><strong>const</strong></span> <a href="find_iterator.html" title="Class template find_iterator">find_iterator</a> &amp; Other);</pre>
+<p>Construct a copy of the find_iterator </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT&gt;
+  <a name="id1173158-bb"></a>find_iterator(IteratorT Begin, IteratorT End, FinderT Finder);</pre>
+<p>Construct new find_iterator for a given finder and a range. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <a name="id1179053-bb"></a>find_iterator(RangeT &amp; Col, FinderT Finder);</pre>
+<p>Construct new find_iterator for a given finder and a range. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1323433"></a><h3>
+<a name="id1149827-bb"></a><code class="computeroutput">find_iterator</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id754748-bb"></a>eof() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Check the eof condition. Eof condition means that there is nothing more to be searched i.e. find_iterator is after the last match. </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1323480"></a><h3>
+<a name="id1210798-bb"></a><code class="computeroutput">find_iterator</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> match_type &amp;</span> <a name="id1113880-bb"></a>dereference() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1066809-bb"></a>increment() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1174062-bb"></a>equal(<span class="bold"><strong>const</strong></span> <a href="find_iterator.html" title="Class template find_iterator">find_iterator</a> &amp; Other) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1171494.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="split_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_last.html b/doc/html/find_last.html
new file mode 100644
index 0000000000..e78bcc6cd3
--- /dev/null
+++ b/doc/html/find_last.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="ifind_first.html" title="Function template ifind_first">
+<link rel="next" href="ifind_last.html" title="Function template ifind_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_last</span></h2>
+<p>boost::algorithm::find_last &#8212; Find last algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  find_last(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1320822"></a><h2>Description</h2>
+<p>Search for the last occurence of the substring in the input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_nth.html b/doc/html/find_nth.html
new file mode 100644
index 0000000000..170cceab29
--- /dev/null
+++ b/doc/html/find_nth.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="ifind_last.html" title="Function template ifind_last">
+<link rel="next" href="ifind_nth.html" title="Function template ifind_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_nth</span></h2>
+<p>boost::algorithm::find_nth &#8212; Find n-th algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  find_nth(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1321094"></a><h2>Description</h2>
+<p>Search for the n-th (zero-indexed) occurence of the substring in the input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index (zero-indexed) of the match to be found. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="ifind_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_regex.html b/doc/html/find_regex.html
new file mode 100644
index 0000000000..667e8b19a7
--- /dev/null
+++ b/doc/html/find_regex.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="all.html" title="Function template all">
+<link rel="next" href="replace_regex_copy.html" title="Function replace_regex_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_regex</span></h2>
+<p>boost::algorithm::find_regex &#8212; Find regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  find_regex(RangeT &amp; Input, <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+             match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1346269"></a><h2>Description</h2>
+<p>Search for a substring matching the given regex in the input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">RangeT::iterator</code> or <code class="computeroutput">RangeT::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_tail.html b/doc/html/find_tail.html
new file mode 100644
index 0000000000..2c3a6f3cd2
--- /dev/null
+++ b/doc/html/find_tail.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_tail</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find_head.html" title="Function template find_head">
+<link rel="next" href="find_token.html" title="Function template find_token">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_token.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_tail"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_tail</span></h2>
+<p>boost::algorithm::find_tail &#8212; Find tail algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  find_tail(RangeT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1321498"></a><h2>Description</h2>
+<p>Get the head of the input. Head is a suffix of the string of the given size. If the input is shorter then required, whole input if considered to be the tail.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the tail </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">RangeT::iterator</code> or <code class="computeroutput">RangeT::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_token.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/find_token.html b/doc/html/find_token.html
new file mode 100644
index 0000000000..0366a392ca
--- /dev/null
+++ b/doc/html/find_token.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template find_token</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find_tail.html" title="Function template find_tail">
+<link rel="next" href="find_format_copy.html" title="Function find_format_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_format_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="find_token"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template find_token</span></h2>
+<p>boost::algorithm::find_token &#8212; Find token algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  find_token(RangeT &amp; Input, PredicateT Pred,
+             token_compress_mode_type eCompress = token_compress_off);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1321614"></a><h2>Description</h2>
+<p>Look for a given token in the string. Token is a character that matches the given predicate. If the "token compress mode" is enabled, adjacent tokens are considered to be one match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A input string. </p></dd>
+<dt><span class="term">Pred</span></dt>
+<dd><p>An unary predicate to identify a token </p></dd>
+<dt><span class="term">eCompress</span></dt>
+<dd><p>Enable/Disable compressing of adjacent tokens </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">RangeT::iterator</code> or <code class="computeroutput">RangeT::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_format_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/first_finder.html b/doc/html/first_finder.html
new file mode 100644
index 0000000000..ab22c1a1e2
--- /dev/null
+++ b/doc/html/first_finder.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function first_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="make_split_iterator.html" title="Function template make_split_iterator">
+<link rel="next" href="last_finder.html" title="Function last_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_split_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="last_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="first_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function first_finder</span></h2>
+<p>boost::algorithm::first_finder &#8212; "First" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> first_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> first_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search, PredicateT Comp);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1324722"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">first_finder</code> . The finder searches for the first occurrence of the string in a given input. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">first_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_split_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="last_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/first_kday_after.html b/doc/html/first_kday_after.html
new file mode 100644
index 0000000000..6f887bedca
--- /dev/null
+++ b/doc/html/first_kday_after.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template first_kday_after</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="last_kday_of_month.html" title="Class template last_kday_of_month">
+<link rel="next" href="first_kday_before.html" title="Class template first_kday_before">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_before.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="first_kday_after"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template first_kday_after</span></h2>
+<p>boost::date_time::first_kday_after &#8212; Calculate something like "First Sunday after Jan 1,2002. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> first_kday_after {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type        calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_of_week_type day_of_week_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type        duration_type;   
+
+  <span class="emphasis"><em>// <a href="first_kday_after.html#first_kday_afterconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="first_kday_after.html#id652735-bb">first_kday_after</a>(day_of_week_type);
+
+  <span class="emphasis"><em>// <a href="first_kday_after.html#id1038849-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="first_kday_after.html#id1038854-bb">get_date</a>(date_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="first_kday_after.html#id1113167-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1075748"></a><h2>Description</h2>
+<p>Date generator that takes a date and finds kday after </p>
+<pre class="programlisting"> typedef boost::date_time::first_kday_after&lt;date&gt; firstkdayafter;
+ firstkdayafter fkaf(Monday);
+ fkaf.get_date(date(2002,Feb,1));
+</pre>
+<div class="refsect2" lang="en">
+<a name="id1075768"></a><h3>
+<a name="first_kday_afterconstruct-copy-destruct"></a><code class="computeroutput">first_kday_after</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id652735-bb"></a>first_kday_after(day_of_week_type dow);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1075800"></a><h3>
+<a name="id1038849-bb"></a><code class="computeroutput">first_kday_after</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id1038854-bb"></a>get_date(date_type start_day) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id1113167-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_before.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/first_kday_before.html b/doc/html/first_kday_before.html
new file mode 100644
index 0000000000..01dcaf62ec
--- /dev/null
+++ b/doc/html/first_kday_before.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template first_kday_before</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="first_kday_after.html" title="Class template first_kday_after">
+<link rel="next" href="days_until_weekday.html" title="Function template days_until_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_after.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="days_until_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="first_kday_before"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template first_kday_before</span></h2>
+<p>boost::date_time::first_kday_before &#8212; Calculate something like "First Sunday before Jan 1,2002. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> first_kday_before {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type        calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_of_week_type day_of_week_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type        duration_type;   
+
+  <span class="emphasis"><em>// <a href="first_kday_before.html#first_kday_beforeconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="first_kday_before.html#id826948-bb">first_kday_before</a>(day_of_week_type);
+
+  <span class="emphasis"><em>// <a href="first_kday_before.html#id1079950-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="first_kday_before.html#id802966-bb">get_date</a>(date_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="first_kday_before.html#id901019-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076004"></a><h2>Description</h2>
+<p>Date generator that takes a date and finds kday after </p>
+<pre class="programlisting"> typedef boost::date_time::first_kday_before&lt;date&gt; firstkdaybefore;
+ firstkdaybefore fkbf(Monday);
+ fkbf.get_date(date(2002,Feb,1));
+</pre>
+<div class="refsect2" lang="en">
+<a name="id1076015"></a><h3>
+<a name="first_kday_beforeconstruct-copy-destruct"></a><code class="computeroutput">first_kday_before</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id826948-bb"></a>first_kday_before(day_of_week_type dow);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1076056"></a><h3>
+<a name="id1079950-bb"></a><code class="computeroutput">first_kday_before</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id802966-bb"></a>get_date(date_type start_day) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id901019-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_after.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="days_until_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/first_kday_of_month.html b/doc/html/first_kday_of_month.html
new file mode 100644
index 0000000000..0ea0ea229b
--- /dev/null
+++ b/doc/html/first_kday_of_month.html
@@ -0,0 +1,97 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template first_kday_of_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="nth_kday_of_month.html" title="Class template nth_kday_of_month">
+<link rel="next" href="last_kday_of_month.html" title="Class template last_kday_of_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="last_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="first_kday_of_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template first_kday_of_month</span></h2>
+<p>boost::date_time::first_kday_of_month &#8212; Useful generator functor for finding holidays and daylight savings. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> first_kday_of_month
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::year_based_generator&lt; date_type &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type        calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_of_week_type day_of_week_type;
+  <span class="bold"><strong>typedef</strong></span> calendar_type::month_type       month_type;      
+  <span class="bold"><strong>typedef</strong></span> calendar_type::year_type        year_type;       
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type        duration_type;   
+
+  <span class="emphasis"><em>// <a href="first_kday_of_month.html#first_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="first_kday_of_month.html#id794313-bb">first_kday_of_month</a>(day_of_week_type, month_type);
+
+  <span class="emphasis"><em>// <a href="first_kday_of_month.html#id1033916-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="first_kday_of_month.html#id997615-bb">get_date</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="first_kday_of_month.html#id1039262-bb">month</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="first_kday_of_month.html#id802700-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="first_kday_of_month.html#id903819-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1075043"></a><h2>Description</h2>
+<p>Similar to nth_kday_of_month, but requires less paramters </p>
+<div class="refsect2" lang="en">
+<a name="id1075050"></a><h3>
+<a name="first_kday_of_monthconstruct-copy-destruct"></a><code class="computeroutput">first_kday_of_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id794313-bb"></a>first_kday_of_month(day_of_week_type dow, month_type m);</pre>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">dow</span></dt>
+<dd><p>The day of week, eg: Sunday, Monday, etc </p></dd>
+<dt><span class="term">m</span></dt>
+<dd><p>The month of the year, eg: Jan, Feb, Mar, etc </p></dd>
+</dl>
+</div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1075106"></a><h3>
+<a name="id1033916-bb"></a><code class="computeroutput">first_kday_of_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id997615-bb"></a>get_date(year_type year) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id1039262-bb"></a>month() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id802700-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id903819-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a string formatted as "M4.1.0" ==&gt; 1st Sunday in April. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="last_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/first_last_rule_spec.html b/doc/html/first_last_rule_spec.html
new file mode 100644
index 0000000000..482bf2d889
--- /dev/null
+++ b/doc/html/first_last_rule_spec.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct first_last_rule_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id962272" title="Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;">
+<link rel="prev" href="partial_date_rule_spec.html" title="Struct partial_date_rule_spec">
+<link rel="next" href="last_last_rule_spec.html" title="Struct last_last_rule_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="partial_date_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="last_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="first_last_rule_spec"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct first_last_rule_spec</span></h2>
+<p>boost::local_time::first_last_rule_spec &#8212; </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"><strong>struct</strong></span> first_last_rule_spec {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date                date_type; 
+  <span class="bold"><strong>typedef</strong></span> gregorian::first_kday_of_month start_rule;
+  <span class="bold"><strong>typedef</strong></span> gregorian::last_kday_of_month  end_rule;  
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="partial_date_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="last_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/fixed_string_to_int.html b/doc/html/fixed_string_to_int.html
new file mode 100644
index 0000000000..5a5beb9a21
--- /dev/null
+++ b/doc/html/fixed_string_to_int.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template fixed_string_to_int</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1104639" title="Header &lt;boost/date_time/format_date_parser.hpp&gt;">
+<link rel="prev" href="format_date_parser.html" title="Class template format_date_parser">
+<link rel="next" href="var_string_to_int.html" title="Function template var_string_to_int">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="format_date_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="var_string_to_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="fixed_string_to_int"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template fixed_string_to_int</span></h2>
+<p>boost::date_time::fixed_string_to_int &#8212; Helper function for parsing fixed length strings into integers. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">int_type</span> fixed_string_to_int(std::istreambuf_iterator&lt; charT &gt; &amp; itr,
+                               std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                               parse_match_result&lt; charT &gt; &amp; mr,
+                               <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> length);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1102428"></a><h2>Description</h2>
+<p>Will consume 'length' number of characters from stream. Consumed character are transfered to parse_match_result struct. Returns '-1' if no number can be parsed or incorrect number of digits in stream. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="format_date_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="var_string_to_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/format_date_parser.html b/doc/html/format_date_parser.html
new file mode 100644
index 0000000000..7db32fb1f8
--- /dev/null
+++ b/doc/html/format_date_parser.html
@@ -0,0 +1,184 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template format_date_parser</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1104639" title="Header &lt;boost/date_time/format_date_parser.hpp&gt;">
+<link rel="prev" href="time_from_ftime.html" title="Function template time_from_ftime">
+<link rel="next" href="fixed_string_to_int.html" title="Function template fixed_string_to_int">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_from_ftime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="fixed_string_to_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="format_date_parser"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template format_date_parser</span></h2>
+<p>boost::date_time::format_date_parser &#8212; Class with generic date parsing using a format string. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> format_date_parser {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                string_type;          
+  <span class="bold"><strong>typedef</strong></span> std::basic_stringstream&lt; charT &gt;          stringstream_type;    
+  <span class="bold"><strong>typedef</strong></span> std::istreambuf_iterator&lt; charT &gt;         stream_itr_type;      
+  <span class="bold"><strong>typedef</strong></span> string_type::const_iterator               const_itr;            
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type                      year_type;            
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                     month_type;           
+  <span class="bold"><strong>typedef</strong></span> date_type::day_type                       day_type;             
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type                  duration_type;        
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type               day_of_week_type;     
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_year_type               day_of_year_type;     
+  <span class="bold"><strong>typedef</strong></span> <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>&lt; charT &gt;                parse_tree_type;      
+  <span class="bold"><strong>typedef</strong></span> parse_tree_type::parse_match_result_type  match_results;        
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; input_collection_type;
+
+  <span class="emphasis"><em>// <a href="format_date_parser.html#format_date_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="format_date_parser.html#id822060-bb">format_date_parser</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> input_collection_type &amp;,
+                     <span class="bold"><strong>const</strong></span> input_collection_type &amp;,
+                     <span class="bold"><strong>const</strong></span> input_collection_type &amp;,
+                     <span class="bold"><strong>const</strong></span> input_collection_type &amp;);
+  <a href="format_date_parser.html#id822732-bb">format_date_parser</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp;);
+  <a href="format_date_parser.html#id1000182-bb">format_date_parser</a>(<span class="bold"><strong>const</strong></span> <a href="format_date_parser.html" title="Class template format_date_parser">format_date_parser</a>&lt; date_type, charT &gt; &amp;);
+
+  <span class="emphasis"><em>// <a href="format_date_parser.html#id864173-bb">public member functions</a></em></span>
+  <span class="type">string_type</span> <a href="format_date_parser.html#id896660-bb">format</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="format_date_parser.html#id1078294-bb">format</a>(string_type) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="format_date_parser.html#id1043745-bb">short_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="format_date_parser.html#id721729-bb">long_month_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="format_date_parser.html#id934233-bb">short_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="format_date_parser.html#id1072848-bb">long_weekday_names</a>(<span class="bold"><strong>const</strong></span> input_collection_type &amp;) ;
+  <span class="type">date_type</span> <a href="format_date_parser.html#id892367-bb">parse_date</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="format_date_parser.html#id938860-bb">parse_date</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                       std::istreambuf_iterator&lt; charT &gt; &amp;,
+                       <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="format_date_parser.html#id1045473-bb">parse_date</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                       std::istreambuf_iterator&lt; charT &gt; &amp;, string_type,
+                       <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="format_date_parser.html#id905658-bb">parse_month</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                         std::istreambuf_iterator&lt; charT &gt; &amp;, string_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="format_date_parser.html#id822459-bb">parse_month</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                         std::istreambuf_iterator&lt; charT &gt; &amp;, string_type,
+                         match_results &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_type</span> <a href="format_date_parser.html#id801010-bb">parse_day_of_month</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                              std::istreambuf_iterator&lt; charT &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span>
+  <a href="format_date_parser.html#id793468-bb">parse_weekday</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                std::istreambuf_iterator&lt; charT &gt; &amp;, string_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span>
+  <a href="format_date_parser.html#id1070474-bb">parse_weekday</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                std::istreambuf_iterator&lt; charT &gt; &amp;, string_type,
+                match_results &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">year_type</span> <a href="format_date_parser.html#id858753-bb">parse_year</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                       std::istreambuf_iterator&lt; charT &gt; &amp;, string_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">year_type</span> <a href="format_date_parser.html#id908008-bb">parse_year</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+                       std::istreambuf_iterator&lt; charT &gt; &amp;, string_type,
+                       match_results &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1101662"></a><h2>Description</h2>
+<p>The following is the set of recognized format specifiers</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>a - Short weekday name</p></li>
+<li><p>A - Long weekday name</p></li>
+<li><p>b - Abbreviated month name</p></li>
+<li><p>B - Full month name</p></li>
+<li><p>d - Day of the month as decimal 01 to 31</p></li>
+<li><p>j - Day of year as decimal from 001 to 366</p></li>
+<li><p>m - Month name as a decimal 01 to 12</p></li>
+<li><p>U - Week number 00 to 53 with first Sunday as the first day of week 1?</p></li>
+<li><p>w - Weekday as decimal number 0 to 6 where Sunday == 0</p></li>
+<li><p>W - Week number 00 to 53 where Monday is first day of week 1</p></li>
+<li><p>x - facet default date representation</p></li>
+<li><p>y - Year without the century - eg: 04 for 2004</p></li>
+<li><p>Y - Year with century</p></li>
+</ul></div>
+<p>The weekday specifiers (a and A) do not add to the date construction, but they provide a way to skip over the weekday names for formats that provide them.</p>
+<p>todo -- Another interesting feature that this approach could provide is an option to fill in any missing fields with the current values from the clock. So if you have m-%d the parser would detect the missing year value and fill it in using the clock.</p>
+<p>todo -- What to do with the x. x in the classic facet is just bad... </p>
+<div class="refsect2" lang="en">
+<a name="id1101736"></a><h3>
+<a name="format_date_parserconstruct-copy-destruct"></a><code class="computeroutput">format_date_parser</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id822060-bb"></a>format_date_parser(<span class="bold"><strong>const</strong></span> string_type &amp; format,
+                   <span class="bold"><strong>const</strong></span> input_collection_type &amp; month_short_names,
+                   <span class="bold"><strong>const</strong></span> input_collection_type &amp; month_long_names,
+                   <span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_short_names,
+                   <span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_long_names);</pre></li>
+<li><pre class="literallayout"><a name="id822732-bb"></a>format_date_parser(<span class="bold"><strong>const</strong></span> string_type &amp; format, <span class="bold"><strong>const</strong></span> std::locale &amp; locale);</pre></li>
+<li><pre class="literallayout"><a name="id1000182-bb"></a>format_date_parser(<span class="bold"><strong>const</strong></span> <a href="format_date_parser.html" title="Class template format_date_parser">format_date_parser</a>&lt; date_type, charT &gt; &amp; fdp);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1101858"></a><h3>
+<a name="id864173-bb"></a><code class="computeroutput">format_date_parser</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id896660-bb"></a>format() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1078294-bb"></a>format(string_type format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1043745-bb"></a>short_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id721729-bb"></a>long_month_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; month_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id934233-bb"></a>short_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1072848-bb"></a>long_weekday_names(<span class="bold"><strong>const</strong></span> input_collection_type &amp; weekday_names) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id892367-bb"></a>parse_date(<span class="bold"><strong>const</strong></span> string_type &amp; value, <span class="bold"><strong>const</strong></span> string_type &amp; format,
+                     <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp; sv_parser) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id938860-bb"></a>parse_date(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                     std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                     <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp; sv_parser) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type">date_type</span> <a name="id1045473-bb"></a>parse_date(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                     std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                     string_type format,
+                     <span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp; sv_parser) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Of all the objects that the format_date_parser can parse, only a date can be a special value. Therefore, only parse_date checks for special_values. </p>
+</li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id905658-bb"></a>parse_month(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                       std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                       string_type format) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id822459-bb"></a>parse_month(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                       std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                       string_type format, match_results &amp; mr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_type</span> <a name="id801010-bb"></a>parse_day_of_month(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                            std::istreambuf_iterator&lt; charT &gt; &amp; stream_end) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span>
+<a name="id793468-bb"></a>parse_weekday(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+              std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+              string_type format) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span>
+<a name="id1070474-bb"></a>parse_weekday(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+              std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+              string_type format, match_results &amp; mr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">year_type</span> <a name="id858753-bb"></a>parse_year(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                     std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                     string_type format) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">year_type</span> <a name="id908008-bb"></a>parse_year(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+                     std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                     string_type format, match_results &amp; mr) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_from_ftime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="fixed_string_to_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/from_ftime.html b/doc/html/from_ftime.html
new file mode 100644
index 0000000000..5abaebc309
--- /dev/null
+++ b/doc/html/from_ftime.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template from_ftime</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id974552" title="Header &lt;boost/date_time/posix_time/conversion.hpp&gt;">
+<link rel="prev" href="special_value_from_string.html" title="Function special_value_from_string">
+<link rel="next" href="id1111919.html" title="Function operator+">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_value_from_string.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id974552"><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="id1111919.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="from_ftime"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template from_ftime</span></h2>
+<p>boost::posix_time::from_ftime &#8212; Function to create a time object from an initialized FILETIME struct. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="type">time_type</span> from_ftime(<span class="bold"><strong>const</strong></span> FILETIME &amp; ft);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1174672"></a><h2>Description</h2>
+<p>Function to create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation.</p>
+<p>Note ftime is part of the Win32 API, so it is not portable to non-windows platforms. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_value_from_string.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id974552"><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="id1111919.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function.html b/doc/html/function.html
index 3661baccd8..bfb56539c4 100644
--- a/doc/html/function.html
+++ b/doc/html/function.html
@@ -1,10 +1,104 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/function.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/function.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/function.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 4. Boost.Function</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="time_zone.html" title="Class time_zone">
+<link rel="next" href="function/history.html" title="History &amp; Compatibility Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="function/history.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="function"></a>Chapter 4. Boost.Function</h2></div>
+<div><div class="author">
+<h3 class="author">
+<span class="firstname">Douglas</span> <span class="surname">Gregor</span>
+</h3>
+<code class="email">&lt;<a href="mailto:dgregor%20-at-%20cs.indiana.edu">dgregor -at- cs.indiana.edu</a>&gt;</code>
+</div></div>
+<div><p class="copyright">Copyright © 2001-2004 Douglas Gregor</p></div>
+<div><div class="legalnotice">
+<a name="id1186182"></a><p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="function.html#function.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="function/history.html">History &amp; Compatibility Notes</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html">Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="function/tutorial.html#id1186576">Basic Usage</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html#id1186874">Free functions</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html#id1186902">Member functions</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html#id1187060">References to Function Objects</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html#id1187209">Comparing Boost.Function function objects</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="function/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="function/reference.html#function.definitions">Definitions</a></span></dt>
+<dt><span class="section"><a href="function/reference.html#header.boost.function.hpp">Header &lt;boost/function.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="function/reference.html#id1002914">Header &lt;boost/function_equal.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="function/faq.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="function/misc.html">Miscellaneous Notes</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="function/misc.html#id1215111">Boost.Function vs. Function Pointers</a></span></dt>
+<dt><span class="section"><a href="function/misc.html#id1215161">Performance</a></span></dt>
+<dt><span class="section"><a href="function/misc.html#id1215202">Combatting virtual function "bloat"</a></span></dt>
+<dt><span class="section"><a href="function/misc.html#id1215222">Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="function/testsuite.html">Testsuite</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="function/testsuite.html#function.testsuite.acceptance">Acceptance tests</a></span></dt>
+<dt><span class="section"><a href="function/testsuite.html#function.testsuite.negative">Negative tests</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="function.intro"></a>Introduction</h3></div></div></div>
+<p>The Boost.Function library contains a family of class templates
+that are function object wrappers. The notion is similar to a
+generalized callback. It shares features with function pointers in
+that both define a call interface (e.g., a function taking two integer
+arguments and returning a floating-point value) through which some
+implementation can be called, and the implementation that is invoked
+may change throughout the course of the program.</p>
+<p> Generally, any place in which a function pointer would be used
+to defer a call or make a callback, Boost.Function can be used instead
+to allow the user greater flexibility in the implementation of the
+target. Targets can be any 'compatible' function object (or function
+pointer), meaning that the arguments to the interface designated by
+Boost.Function can be converted to the arguments of the target
+function object.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 25, 2004 at 02:51:51 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="function/history.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/function/faq.html b/doc/html/function/faq.html
new file mode 100644
index 0000000000..7d981606f0
--- /dev/null
+++ b/doc/html/function/faq.html
@@ -0,0 +1,216 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Frequently Asked Questions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="../function_equal.html" title="Function template function_equal">
+<link rel="next" href="misc.html" title="Miscellaneous Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function_equal.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="misc.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="function.faq"></a>Frequently Asked Questions</h3></div></div></div>
+<div class="qandaset">
+<dl>
+<dt>1. <a href="faq.html#id1214641">Why can't I compare
+ boost::function objects with
+ operator== or
+ operator!=?</a>
+</dt>
+<dt>2. <a href="faq.html#id1214973">I see void pointers; is this [mess] type safe?</a>
+</dt>
+<dt>3. <a href="faq.html#id1214987">Why are there workarounds for void returns? C++ allows them!</a>
+</dt>
+<dt>4. <a href="faq.html#id1215029">Why (function) cloning?</a>
+</dt>
+<dt>5. <a href="faq.html#id1215043">How much overhead does a call through boost::function incur?</a>
+</dt>
+</dl>
+<table border="0" summary="Q and A Set">
+<col align="left" width="1%">
+<tbody>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1214641"></a><a name="id1214642"></a><b>1.</b>
+</td>
+<td align="left" valign="top"><p>Why can't I compare
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> objects with
+ <code class="computeroutput">operator==</code> or
+ <code class="computeroutput">operator!=</code>?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top">
+<p>Comparison between <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>
+ objects cannot be implemented "well", and therefore will not be
+ implemented. The typical semantics requested for <code class="computeroutput">f ==
+ g</code> given <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> objects
+ <code class="computeroutput">f</code> and <code class="computeroutput">g</code> are:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>If <code class="computeroutput">f</code> and <code class="computeroutput">g</code>
+ store function objects of the same type, use that type's
+ <code class="computeroutput">operator==</code> to compare
+ them.</li>
+<li>If <code class="computeroutput">f</code> and <code class="computeroutput">g</code>
+ store function objects of different types, return
+ <code class="computeroutput">false</code>.</li>
+</ul></div>
+<p>The problem occurs when the type of the function objects
+ stored by both <code class="computeroutput">f</code> and <code class="computeroutput">g</code> doesn't have an
+ <code class="computeroutput">operator==</code>: we would like the expression <code class="computeroutput">f ==
+ g</code> to fail to compile, as occurs with, e.g., the standard
+ containers. However, this is not implementable for
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> because it necessarily
+ "erases" some type information after it has been assigned a
+ function object, so it cannot try to call
+ <code class="computeroutput">operator==</code> later: it must either find a way to call
+ <code class="computeroutput">operator==</code> now, or it will never be able to call it
+ later. Note, for instance, what happens if you try to put a
+ <code class="computeroutput">float</code> value into a
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> object: you will get an
+ error at the assignment operator or constructor, not in
+ <code class="computeroutput">operator()</code>, because the function-call expression
+ must be bound in the constructor or assignment operator.</p>
+<p>The most promising approach is to find a method of
+ determining if <code class="computeroutput">operator==</code> can be called for a
+ particular type, and then supporting it only when it is
+ available; in other situations, an exception would be
+ thrown. However, to date there is no known way to detect if an
+ arbitrary operator expression <code class="computeroutput">f == g</code> is suitably
+ defined. The best solution known has the following undesirable
+ qualities:</p>
+<div class="orderedlist"><ol type="1">
+<li>Fails at compile-time for objects where
+ <code class="computeroutput">operator==</code> is not accessible (e.g., because it is
+ <code class="computeroutput">private</code>).</li>
+<li>Fails at compile-time if calling
+ <code class="computeroutput">operator==</code> is ambiguous.</li>
+<li>Appears to be correct if the
+ <code class="computeroutput">operator==</code> declaration is correct, even though
+ <code class="computeroutput">operator==</code> may not compile.</li>
+</ol></div>
+<p>All of these problems translate into failures in the
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> constructors or
+ assignment operator, <span class="emphasis"><em>even if the user never invokes
+ operator==</em></span>. We can't do that to users.</p>
+<p>The other option is to place the burden on users that want
+ to use <code class="computeroutput">operator==</code>, e.g., by providing an
+ <code class="computeroutput">is_equality_comparable</code> trait they may
+ specialize. This is a workable solution, but is dangerous in
+ practice, because forgetting to specialize the trait will result
+ in unexpected exceptions being thrown from
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>'s
+ <code class="computeroutput">operator==</code>. This essentially negates the usefulness
+ of <code class="computeroutput">operator==</code> in the context in which it is most
+ desired: multitarget callbacks. The
+ <a href="../signals.html" title="Chapter 9. Boost.Signals">Signals</a> library has a way around
+ this.</p>
+</td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1214973"></a><a name="id1214974"></a><b>2.</b>
+</td>
+<td align="left" valign="top"><p>I see void pointers; is this [mess] type safe?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Yes, <code class="computeroutput">boost::function</code> is type
+safe even though it uses void pointers and pointers to functions
+returning void and taking no arguments. Essentially, all type
+information is encoded in the functions that manage and invoke
+function pointers and function objects. Only these functions are
+instantiated with the exact type that is pointed to by the void
+pointer or pointer to void function. The reason that both are required
+is that one may cast between void pointers and object pointers safely
+or between different types of function pointers (provided you don't
+invoke a function pointer with the wrong type). </p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1214987"></a><a name="id1214988"></a><b>3.</b>
+</td>
+<td align="left" valign="top"><p>Why are there workarounds for void returns? C++ allows them!</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top">
+<p>Void returns are permitted by the C++ standard, as in this code snippet:
+</p>
+<pre class="programlisting">void f();
+void g() { return f(); }</pre>
+<p> This is a valid usage of <code class="computeroutput">boost::function</code> because void returns are not used. With void returns, we would attempting to compile ill-formed code similar to:
+</p>
+<pre class="programlisting">int f();
+void g() { return f(); }</pre>
+<p> In essence, not using void returns allows
+<code class="computeroutput">boost::function</code> to swallow a return value. This is
+consistent with allowing the user to assign and invoke functions and
+function objects with parameters that don't exactly match.</p>
+</td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1215029"></a><a name="id1215030"></a><b>4.</b>
+</td>
+<td align="left" valign="top"><p>Why (function) cloning?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>In November and December of 2000, the issue of cloning
+ vs. reference counting was debated at length and it was decided
+ that cloning gave more predictable semantics. I won't rehash the
+ discussion here, but if it cloning is incorrect for a particular
+ application a reference-counting allocator could be used.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1215043"></a><a name="id1215044"></a><b>5.</b>
+</td>
+<td align="left" valign="top"><p>How much overhead does a call through <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> incur?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top">
+<p>The cost of <code class="computeroutput">boost::function</code> can be reasonably
+ consistently measured at around 20ns +/- 10 ns on a modern &gt;2GHz
+ platform versus directly inlining the code.</p>
+<p>However, the performance of your application may benefit
+ from or be disadvantaged by <code class="computeroutput">boost::function</code>
+ depending on how your C++ optimiser optimises. Similar to a
+ standard function pointer, differences of order of 10% have been
+ noted to the benefit or disadvantage of using
+ <code class="computeroutput">boost::function</code> to call a function that contains a
+ tight loop depending on your compilation circumstances.</p>
+<p>[Answer provided by Matt Hurd. See <a href="http://article.gmane.org/gmane.comp.lib.boost.devel/33278" target="_top">http://article.gmane.org/gmane.comp.lib.boost.devel/33278</a>]</p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: February 18, 2004 at 06:37:13 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function_equal.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="misc.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function/history.html b/doc/html/function/history.html
new file mode 100644
index 0000000000..826b546aef
--- /dev/null
+++ b/doc/html/function/history.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>History &amp; Compatibility Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="next" href="tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="tutorial.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="function.history"></a>History &amp; Compatibility Notes</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<p><span class="bold"><strong>Version 1.30.0</strong></span>: </p>
+<div class="itemizedlist"><ul type="circle" compact>
+<li><p>All features deprecated in version 1.29.0 have
+ been removed from Boost.Function.</p></li>
+<li><p><code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>
+ and <code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::functionN</a></code> objects
+ can be assigned to 0 (semantically equivalent to calling
+ <code class="computeroutput"><a href="../boost/function.html#id903961-bb">clear</a>()</code>) and
+ compared against 0 (semantically equivalent to calling
+ <code class="computeroutput"><a href="../boost/function.html#id972567-bb">empty</a>()</code>).</p></li>
+<li><p>The Boost.Function code is now generated
+ entirely by the <a href="../../../libs/preprocessor/index.html" target="_top">Preprocessor</a> library,
+ so it is now possible to generate
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> and
+ <code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::functionN</a></code> class
+ templates for any number of arguments.</p></li>
+<li><p>The
+ <code class="computeroutput"><a href="../bad_function_call.html" title="Class bad_function_call">boost::bad_function_call</a></code> exception class
+ was introduced.</p></li>
+</ul></div>
+</li>
+<li>
+<p><span class="bold"><strong>Version 1.29.0</strong></span>:
+ Boost.Function has been partially redesigned to minimize the
+ interface and make it cleaner. Several seldom- or never-used
+ features of the older Boost.Function have been deprecated and will
+ be removed in the near future. Here is a list of features that have
+ been deprecated, the likely impact of the deprecations, and how to
+ adjust your code:
+
+</p>
+<div class="itemizedlist"><ul type="circle" compact>
+<li>
+<p>The <code class="computeroutput">boost::function</code> class template syntax has
+ changed. The old syntax, e.g., <code class="computeroutput">boost::function&lt;int, float,
+ double, std::string&gt;</code>, has been changed to a more natural
+ syntax <code class="computeroutput">boost::function&lt;int (float, double,
+ std::string)&gt;</code>, where all return and argument types are
+ encoded in a single function type parameter. Any other template
+ parameters (e.g., the <code class="computeroutput">Allocator</code>) follow this single
+ parameter.</p>
+<p> The resolution to this change depends on the
+ abilities of your compiler: if your compiler supports template
+ partial specialization and can parse function types (most do), modify
+ your code to use the newer
+ syntax (preferable) or directly use one of the
+ <code class="computeroutput">functionN</code> classes whose syntax has not
+ changed. If your compiler does not support template partial
+ specialization or function types, you must take the latter option and
+ use the numbered Boost.Function classes. This option merely requires
+ changing types such as <code class="computeroutput">boost::function&lt;void, int, int&gt;</code>
+ to <code class="computeroutput">boost::function2&lt;void, int, int&gt;</code> (adding the number of
+ function arguments to the end of the class name).</p>
+<p> Support for the old syntax with the
+ <code class="computeroutput">boost::function</code> class template will persist for a short
+ while, but will eventually be removed so that we can provide better
+ error messages and link compatibility. </p>
+</li>
+<li><p>The invocation
+ policy template parameter (<code class="computeroutput">Policy</code>) has been deprecated
+ and will be removed. There is no direct equivalent to this rarely
+ used feature.</p></li>
+<li><p>The mixin template parameter
+ (<code class="computeroutput">Mixin</code>) has been deprecated and will be removed. There
+ is not direct equivalent to this rarely used feature.</p></li>
+<li><p>The
+ <code class="computeroutput">set</code> methods have been deprecated and will be
+ removed. Use the assignment operator instead.</p></li>
+</ul></div>
+</li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: January 23, 2005 at 16:23:09 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function/misc.html b/doc/html/function/misc.html
new file mode 100644
index 0000000000..ce3e681d29
--- /dev/null
+++ b/doc/html/function/misc.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Miscellaneous Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="faq.html" title="Frequently Asked Questions">
+<link rel="next" href="testsuite.html" title="Testsuite">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="testsuite.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="function.misc"></a>Miscellaneous Notes</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="misc.html#id1215111">Boost.Function vs. Function Pointers</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1215161">Performance</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1215202">Combatting virtual function "bloat"</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1215222">Acknowledgements</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1215111"></a>Boost.Function vs. Function Pointers</h4></div></div></div>
+<p>Boost.Function has several advantages over function pointers, namely:
+
+</p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li><p>Boost.Function allows arbitrary compatible function objects to be targets (instead of requiring an exact function signature).</p></li>
+<li><p>Boost.Function may be used with argument-binding and other function object construction libraries.</p></li>
+<li><p>Boost.Function has predictible behavior when an empty function object is called. </p></li>
+</ul></div>
+<p> And, of course, function pointers have several advantages over Boost.Function:
+
+</p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li><p> Function pointers are smaller (the size of one pointer instead of three) </p></li>
+<li><p> Function pointers are faster (Boost.Function may require two calls through function pointers) </p></li>
+<li><p> Function pointers are backward-compatible with C libraries.</p></li>
+<li><p> More readable error messages. </p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1215161"></a>Performance</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="misc.html#id1215164">Function object wrapper size</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1215174">Copying efficiency</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1215192">Invocation efficiency</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1215164"></a>Function object wrapper size</h5></div></div></div>
+<p> Function object wrappers will be the size of two function pointers plus one function pointer or data pointer (whichever is larger). On common 32-bit platforms, this amounts to 12 bytes per wrapper. Additionally, the function object target will be allocated on the heap.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1215174"></a>Copying efficiency</h5></div></div></div>
+<p> Copying function object wrappers may require allocating memory for a copy of the function object target. The default allocator may be replaced with a faster custom allocator or one may choose to allow the function object wrappers to only store function object targets by reference (using <code class="computeroutput">ref</code>) if the cost of this cloning becomes prohibitive.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1215192"></a>Invocation efficiency</h5></div></div></div>
+<p> With a properly inlining compiler, an invocation of a function object requires one call through a function pointer. If the call is to a free function pointer, an additional call must be made to that function pointer (unless the compiler has very powerful interprocedural analysis).</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1215202"></a>Combatting virtual function "bloat"</h4></div></div></div>
+<p> The use of virtual functions tends to cause 'code bloat' on many compilers. When a class contains a virtual function, it is necessary to emit an additional function that classifies the type of the object. It has been our experience that these auxiliary functions increase the size of the executable significantly when many <code class="computeroutput">boost::function</code> objects are used. </p>
+<p> In Boost.Function, an alternative but equivalent approach was taken using free functions instead of virtual functions. The Boost.Function object essentially holds two pointers to make a valid target call: a void pointer to the function object it contains and a void pointer to an "invoker" that can call the function object, given the function pointer. This invoker function performs the argument and return value conversions Boost.Function provides. A third pointer points to a free function called the "manager", which handles the cloning and destruction of function objects. The scheme is typesafe because the only functions that actually handle the function object, the invoker and the manager, are instantiated given the type of the function object, so they can safely cast the incoming void pointer (the function object pointer) to the appropriate type.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1215222"></a>Acknowledgements</h4></div></div></div>
+<p> Many people were involved in the construction of this
+ library. William Kempf, Jesse Jones and Karl Nelson were all
+ extremely helpful in isolating an interface and scope for the
+ library. John Maddock managed the formal review, and many
+ reviewers gave excellent comments on interface, implementation,
+ and documentation. Peter Dimov led us to the function
+ declarator-based syntax.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: March 12, 2003 at 23:27:22 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="testsuite.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function/reference.html b/doc/html/function/reference.html
new file mode 100644
index 0000000000..c5eb8f0598
--- /dev/null
+++ b/doc/html/function/reference.html
@@ -0,0 +1,184 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="../bad_function_call.html" title="Class bad_function_call">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="../bad_function_call.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="function.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#function.definitions">Definitions</a></span></dt>
+<dt><span class="section"><a href="reference.html#header.boost.function.hpp">Header &lt;boost/function.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1002914">Header &lt;boost/function_equal.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="function.definitions"></a>Definitions</h4></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p>A function object <code class="computeroutput">f</code> is
+ <span class="emphasis"><em>compatible</em></span> if for the given set of argument
+ types <code class="computeroutput">Arg1</code>,
+ <code class="computeroutput">Arg2</code>, ...,
+ <code class="computeroutput">ArgN</code> and a
+ return type <code class="computeroutput">ResultType</code>, the
+ appropriate following function is well-formed:
+</p>
+<pre class="programlisting"><span class="emphasis"><em>// if ResultType is not <span class="bold"><strong>void</strong></span></em></span>
+ ResultType foo(Arg1 arg1, Arg2 arg2, ..., Arg<span class="emphasis"><em>N</em></span> arg<span class="emphasis"><em>N</em></span>)
+ {
+ <span class="bold"><strong>return</strong></span> f(arg1, arg2, ..., arg<span class="emphasis"><em>N</em></span>);
+ }
+
+ <span class="emphasis"><em>// if ResultType is <span class="bold"><strong>void</strong></span></em></span>
+ ResultType foo(Arg1 arg1, Arg2 arg2, ..., Arg<span class="emphasis"><em>N</em></span> arg<span class="emphasis"><em>N</em></span>)
+ {
+ f(arg1, arg2, ..., arg<span class="emphasis"><em>N</em></span>);
+ }
+</pre>
+<p> A special provision is made for pointers to member
+ functions. Though they are not function objects, Boost.Function
+ will adapt them internally to function objects. This requires
+ that a pointer to member function of the form <code class="computeroutput">R
+ (X::*mf)(Arg1, Arg2, ..., ArgN)
+ cv-quals</code> be adapted to a
+ function object with the following function call operator
+ overloads:
+</p>
+<pre class="programlisting"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename P</strong></span>&gt;
+ R <span class="bold"><strong>operator</strong></span>()(<span class="emphasis"><em>cv-quals</em></span> P&amp; x, Arg1 arg1, Arg2 arg2, ..., Arg<span class="emphasis"><em>N</em></span> arg<span class="emphasis"><em>N</em></span>) <span class="bold"><strong>const</strong></span>
+ {
+ <span class="bold"><strong>return</strong></span> (*x).*mf(arg1, arg2, ..., arg<span class="emphasis"><em>N</em></span>);
+ }
+</pre>
+</li>
+<li><p>A function object <code class="computeroutput">f</code> of
+ type <code class="computeroutput">F</code> is
+ <span class="emphasis"><em>stateless</em></span> if it is a function pointer or if
+ <code class="computeroutput">boost::is_stateless&lt;T&gt;</code>
+ is true. The construction of or copy to a Boost.Function object
+ from a stateless function object will not cause exceptions to be
+ thrown and will not allocate any storage.
+ </p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.function.hpp"></a>Header &lt;<a href="../../../boost/function.hpp" target="_top">boost/function.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../bad_function_call.html" title="Class bad_function_call">bad_function_call</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../function_base.html" title="Class function_base">function_base</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN,
+           <span class="bold"><strong>typename</strong></span> Allocator = std::allocator&lt;<span class="bold"><strong>void</strong></span>&gt; &gt;
+   <span class="bold"><strong>class</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../functionN.html#id1048560">swap</a>(<a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+              <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id797024-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id962233-bb"><span class="bold"><strong>operator</strong></span>==</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id861450-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+                    <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id978476-bb"><span class="bold"><strong>operator</strong></span>==</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                    <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+           <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../functionN.html#id870072-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;,
+                    <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id974328-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id871257-bb"><span class="bold"><strong>operator</strong></span>!=</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id718882-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+                    <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+           <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../functionN.html#id1141032-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                    <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+           <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../functionN.html#id938183-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;,
+                    <span class="bold"><strong>const</strong></span> <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator = std::allocator&lt;<span class="bold"><strong>void</strong></span>&gt; &gt;
+   <span class="bold"><strong>class</strong></span> <a href="../boost/function.html" title="Class template function">function</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../boost/function.html#id999224">swap</a>(<a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;,
+              <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id1012910-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;, Functor);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id827744-bb"><span class="bold"><strong>operator</strong></span>==</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id937738-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;,
+                    <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id1107517-bb"><span class="bold"><strong>operator</strong></span>==</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                    <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+           <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../boost/function.html#id835486-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp;,
+                    <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id834162-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;, Functor);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id961954-bb"><span class="bold"><strong>operator</strong></span>!=</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id867993-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;,
+                    <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Allocator, <span class="bold"><strong>typename</strong></span> Functor&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../boost/function.html#id1066866-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                    <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature, Allocator&gt;&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature1, <span class="bold"><strong>typename</strong></span> Allocator1, <span class="bold"><strong>typename</strong></span> Signature2,
+           <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../boost/function.html#id966586-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature1, Allocator1&gt;&amp;,
+                    <span class="bold"><strong>const</strong></span> <a href="../boost/function.html" title="Class template function">function</a>&lt;Signature2, Allocator2&gt;&amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1002914"></a>Header &lt;<a href="../../../boost/function_equal.hpp" target="_top">boost/function_equal.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F, <span class="bold"><strong>typename</strong></span> G&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../function_equal.html" title="Function template function_equal">function_equal</a>(<span class="bold"><strong>const</strong></span> F&amp;, <span class="bold"><strong>const</strong></span> G&amp;);
+}</pre>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="../bad_function_call.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function/testsuite.html b/doc/html/function/testsuite.html
new file mode 100644
index 0000000000..4825489b07
--- /dev/null
+++ b/doc/html/function/testsuite.html
@@ -0,0 +1,196 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Testsuite</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="misc.html" title="Miscellaneous Notes">
+<link rel="next" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="misc.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="../hash.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="function.testsuite"></a>Testsuite</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="testsuite.html#function.testsuite.acceptance">Acceptance tests</a></span></dt>
+<dt><span class="section"><a href="testsuite.html#function.testsuite.negative">Negative tests</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="function.testsuite.acceptance"></a>Acceptance tests</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Test</th>
+<th>Type</th>
+<th>Description</th>
+<th>If failing...</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p><a href="../../../libs/function/test/function_test.cpp" target="_top">function_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the capabilities of the <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> class template.</p></td>
+<td><p>The <code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code> class template may not be usable on your compiler. However, the library may still be usable via the <code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::functionN</a></code> class templates.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_n_test.cpp" target="_top">function_n_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the capabilities of the <code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::functionN</a></code> class templates.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/allocator_test.cpp" target="_top">allocator_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the use of custom allocators.</p></td>
+<td><p>Allocators are ignored by the implementation.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/stateless_test.cpp" target="_top">stateless_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the optimization of stateless function objects in the Boost.Function library.</p></td>
+<td><p>The exception-safety and performance guarantees given for stateless function objects may not be met by the implementation.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/lambda_test.cpp" target="_top">lambda_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the interaction between Boost.Function and Boost.Lambda.</p></td>
+<td><p>Either Boost.Lambda does not work on the platform, or Boost.Function cannot safely be applied without the use of <code class="computeroutput">boost::unlambda</code>.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/contains_test.cpp" target="_top">contains_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the operation of the
+ <code class="computeroutput">target</code> member function and the
+ equality operators.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_30.cpp" target="_top">function_30.cpp</a></p></td>
+<td><p>compile</p></td>
+<td><p>Test the generation of a Boost.Function function object adaptor accepting 30 arguments.</p></td>
+<td><p>The Boost.Function library may work for function object adaptors of up to 10 parameters, but will be unable to generate adaptors for an arbitrary number of parameters. Failure often indicates an error in the compiler's preprocessor.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_arith_cxx98.cpp" target="_top">function_arith_cxx98.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the first tutorial example.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_arith_portable.cpp" target="_top">function_arith_portable.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the first tutorial example.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/sum_avg_cxx98.cpp" target="_top">sum_avg_cxx98.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the second tutorial example.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/sum_avg_portable.cpp" target="_top">sum_avg_portable.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the second tutorial example.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/mem_fun_cxx98.cpp" target="_top">mem_fun_cxx98.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test member function example from tutorial.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/mem_fun_portable.cpp" target="_top">mem_fun_portable.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test member function example from tutorial.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/std_bind_cxx98.cpp" target="_top">std_bind_cxx98.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test standard binders example from tutorial.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/std_bind_portable.cpp" target="_top">std_bind_portable.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test standard binders example from tutorial.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_ref_cxx98.cpp" target="_top">function_ref_cxx98.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code> example from tutorial.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_ref_portable.cpp" target="_top">function_ref_portable.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code> example from tutorial.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="function.testsuite.negative"></a>Negative tests</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Test</th>
+<th>Type</th>
+<th>Description</th>
+<th>If failing...</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p><a href="../../../libs/function/test/function_test_fail1.cpp" target="_top">function_test_fail1.cpp</a></p></td>
+<td><p>compile-fail</p></td>
+<td><p>Test the (incorrect!) use of comparisons between Boost.Function function objects.</p></td>
+<td><p>Intuitive (but incorrect!) code may compile and will give meaningless results.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/function/test/function_test_fail2.cpp" target="_top">function_test_fail2.cpp</a></p></td>
+<td><p>compile-fail</p></td>
+<td><p>Test the use of an incompatible function object with Boost.Function</p></td>
+<td><p>Incorrect code may compile (with potentially unexpected results).</p></td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="misc.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="../hash.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function/tutorial.html b/doc/html/function/tutorial.html
new file mode 100644
index 0000000000..1eb9129440
--- /dev/null
+++ b/doc/html/function/tutorial.html
@@ -0,0 +1,322 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../function.html" title="Chapter 4. Boost.Function">
+<link rel="prev" href="history.html" title="History &amp; Compatibility Notes">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="reference.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="function.tutorial"></a>Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1186576">Basic Usage</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1186874">Free functions</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1186902">Member functions</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1187060">References to Function Objects</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1187209">Comparing Boost.Function function objects</a></span></dt>
+</dl></div>
+<p> Boost.Function has two syntactical forms: the preferred form
+and the portable form. The preferred form fits more closely with the
+C++ language and reduces the number of separate template parameters
+that need to be considered, often improving readability; however, the
+preferred form is not supported on all platforms due to compiler
+bugs. The compatible form will work on all compilers supported by
+Boost.Function. Consult the table below to determine which syntactic
+form to use for your compiler.
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><div class="itemizedlist"><ul type="disc" compact>
+<li>GNU C++ 2.95.x, 3.0.x, 3.1.x</li>
+<li>Comeau C++ 4.2.45.2</li>
+<li>SGI MIPSpro 7.3.0</li>
+<li>Intel C++ 5.0, 6.0</li>
+<li>Compaq's cxx 6.2</li>
+<li>Microsoft Visual C++ 7.1</li>
+</ul></div></td>
+<td align="left"><div class="itemizedlist"><ul type="disc" compact>
+<li><span class="emphasis"><em>Any compiler supporting the preferred syntax</em></span></li>
+<li>Microsoft Visual C++ 6.0, 7.0</li>
+<li>Borland C++ 5.5.1</li>
+<li>Sun WorkShop 6 update 2 C++ 5.3</li>
+<li>Metrowerks CodeWarrior 8.1</li>
+</ul></div></td>
+</tr></tbody>
+</table></div>
+<p> If your compiler does not appear in this list, please try the preferred syntax and report your results to the Boost list so that we can keep this table up-to-date.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1186576"></a>Basic Usage</h4></div></div></div>
+<p> A function wrapper is defined simply
+by instantiating the <code class="computeroutput">function</code> class
+template with the desired return type and argument types, formulated
+as a C++ function type. Any number of arguments may be supplied, up to
+some implementation-defined limit (10 is the default maximum). The
+following declares a function object wrapper
+<code class="computeroutput">f</code> that takes two
+<code class="computeroutput">int</code> parameters and returns a
+<code class="computeroutput">float</code>:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;float (int x, int y)&gt; f;</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function2</a></code>&lt;float, int, int&gt; f;</pre></td>
+</tr></tbody>
+</table></div>
+<p> By default, function object wrappers are empty, so we can create a
+function object to assign to <code class="computeroutput">f</code>:
+
+</p>
+<pre class="programlisting">struct int_div {
+ float operator()(int x, int y) const { return ((float)x)/y; };
+};</pre>
+<pre class="programlisting">f = int_div();</pre>
+<p> Now we can use <code class="computeroutput">f</code> to execute
+the underlying function object
+<code class="computeroutput">int_div</code>:
+
+</p>
+<pre class="programlisting">std::cout &lt;&lt; f(5, 3) &lt;&lt; std::endl;</pre>
+<p> We are free to assign any compatible function object to
+<code class="computeroutput">f</code>. If
+<code class="computeroutput">int_div</code> had been declared to take two
+<code class="computeroutput">long</code> operands, the implicit
+conversions would have been applied to the arguments without any user
+interference. The only limit on the types of arguments is that they be
+CopyConstructible, so we can even use references and arrays:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th align="left">Preferred syntax</th></tr></thead>
+<tbody><tr><td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;void (int values[], int n, int&amp; sum, float&amp; avg)&gt; sum_avg;</pre></td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th align="left">Portable syntax</th></tr></thead>
+<tbody><tr><td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function4</a></code>&lt;void, int*, int, int&amp;, float&amp;&gt; sum_avg;</pre></td></tr></tbody>
+</table></div>
+<pre class="programlisting">void do_sum_avg(int values[], int n, int&amp; sum, float&amp; avg)
+{
+ sum = 0;
+ for (int i = 0; i &lt; n; i++)
+ sum += values[i];
+ avg = (float)sum / n;
+}</pre>
+<pre class="programlisting">sum_avg = &amp;do_sum_avg;</pre>
+<p> Invoking a function object wrapper that does not actually
+contain a function object is a precondition violation, much like
+trying to call through a null function pointer, and will throw a <code class="computeroutput"><a href="../bad_function_call.html" title="Class bad_function_call">bad_function_call</a></code> exception). We can check for an
+empty function object wrapper by using it in a boolean context (it evaluates <code class="computeroutput">true</code> if the wrapper is not empty) or compare it against <code class="computeroutput">0</code>. For instance:
+</p>
+<pre class="programlisting">if (f)
+ std::cout &lt;&lt; f(5, 3) &lt;&lt; std::endl;
+else
+ std::cout &lt;&lt; "f has no target, so it is unsafe to call" &lt;&lt; std::endl;</pre>
+<p> Alternatively,
+<code class="computeroutput"><code class="computeroutput"><a href="../boost/function.html#id972567-bb">empty</a></code>()</code>
+method will return whether or not the wrapper is empty. </p>
+<p> Finally, we can clear out a function target by assigning it to <code class="computeroutput">0</code> or by calling the <code class="computeroutput"><code class="computeroutput"><a href="../boost/function.html#id903961-bb">clear</a></code>()</code> member function, e.g.,
+</p>
+<pre class="programlisting">f = 0;</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1186874"></a>Free functions</h4></div></div></div>
+<p> Free function pointers can be considered singleton function objects with const function call operators, and can therefore be directly used with the function object wrappers:
+</p>
+<pre class="programlisting">float mul_ints(int x, int y) { return ((float)x) * y; }</pre>
+<pre class="programlisting">f = &amp;mul_ints;</pre>
+<p> Note that the <code class="computeroutput">&amp;</code> isn't really necessary unless you happen to be using Microsoft Visual C++ version 6. </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1186902"></a>Member functions</h4></div></div></div>
+<p> In many systems, callbacks often call to member functions of a
+particular object. This is often referred to as "argument binding",
+and is beyond the scope of Boost.Function. The use of member functions
+directly, however, is supported, so the following code is valid:
+
+</p>
+<pre class="programlisting">struct X {
+ int foo(int);
+};</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;int (X*, int)&gt; f;
+
+f = &amp;X::foo;
+
+X x;
+f(&amp;x, 5);</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function2</a></code>&lt;int, X*, int&gt; f;
+
+f = &amp;X::foo;
+
+X x;
+f(&amp;x, 5);</pre></td>
+</tr></tbody>
+</table></div>
+<p> Several libraries exist that support argument binding. Three such libraries are summarized below:
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="../../../libs/bind/index.html" target="_top">Bind</a>. This library allows binding of
+ arguments for any function object. It is lightweight and very
+ portable.</p></li>
+<li>
+<p>The C++ Standard library. Using
+ <code class="computeroutput">std::bind1st</code> and
+ <code class="computeroutput">std::mem_fun</code> together one can bind
+ the object of a pointer-to-member function for use with
+ Boost.Function:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;int (int)&gt; f;
+X x;
+f = std::bind1st(
+ std::mem_fun(&amp;X::foo), &amp;x);
+f(5); // Call x.foo(5)</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function1</a></code>&lt;int, int&gt; f;
+X x;
+f = std::bind1st(
+ std::mem_fun(&amp;X::foo), &amp;x);
+f(5); // Call x.foo(5)</pre></td>
+</tr></tbody>
+</table></div>
+</li>
+<li><p>The <a href="../lambda.html" title="Chapter 6. Boost.Lambda">Lambda</a> library. This library provides a powerful composition mechanism to construct function objects that uses very natural C++ syntax. Lambda requires a compiler that is reasonably conformant to the C++ standard. </p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1187060"></a>References to Function Objects</h4></div></div></div>
+<p> In some cases it is
+ expensive (or semantically incorrect) to have Boost.Function clone a
+ function object. In such cases, it is possible to request that
+ Boost.Function keep only a reference to the actual function
+ object. This is done using the <code class="computeroutput">ref</code>
+ and <code class="computeroutput">cref</code> functions to wrap a
+ reference to a function object:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">stateful_type a_function_object;
+<code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;int (int)&gt; f;
+f = <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code>(a_function_object);
+
+<code class="computeroutput"><a href="../boost/function.html" title="Class template function">boost::function</a></code>&lt;int (int)&gt; f2(f);</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">stateful_type a_function_object;
+<code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function1</a></code>&lt;int, int&gt; f;
+f = <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code>(a_function_object);
+
+<code class="computeroutput"><a href="../functionN.html" title="Class template functionN">boost::function1</a></code>&lt;int, int&gt; f2(f);</pre></td>
+</tr></tbody>
+</table></div>
+<p> Here, <code class="computeroutput">f</code> will not make a copy
+of <code class="computeroutput">a_function_object</code>, nor will
+<code class="computeroutput">f2</code> when it is targeted to
+<code class="computeroutput">f</code>'s reference to
+<code class="computeroutput">a_function_object</code>. Additionally, when
+using references to function objects, Boost.Function will not throw
+exceptions during assignment or construction.
+</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1187209"></a>Comparing Boost.Function function objects</h4></div></div></div>
+<p>Function object wrappers can be compared via <code class="computeroutput">==</code>
+ or <code class="computeroutput">!=</code> against any function object that can be stored
+ within the wrapper. If the function object wrapper contains a
+ function object of that type, it will be compared against the given
+ function object (which must be either be
+ <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a> or have an overloaded <code class="computeroutput"><a href="../function_equal.html" title="Function template function_equal">boost::function_equal</a></code>). For instance:</p>
+<pre class="programlisting">int compute_with_X(X*, int);
+
+f = &amp;X::foo;
+assert(f == &amp;X::foo);
+assert(&amp;compute_with_X != f);</pre>
+<p>When comparing against an instance of
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>, the address
+ of the object in the
+ <code class="computeroutput"><a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code> is compared
+ against the address of the object stored by the function object
+ wrapper:</p>
+<pre class="programlisting">a_stateful_object so1, so2;
+f = <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code>(so1);
+assert(f == <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code>(so1));
+assert(f == so1); <span class="emphasis"><em>// Only if a_stateful_object is <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a></em></span>
+assert(f != <code class="computeroutput"><a href="../reference_wrapper.html#id1071532">boost::ref</a></code>(so2));</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: March 18, 2005 at 04:54:32 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/functionN.html b/doc/html/functionN.html
index ac423b620b..90a8a72b5c 100755
--- a/doc/html/functionN.html
+++ b/doc/html/functionN.html
@@ -1,10 +1,396 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <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
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/functionN.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/functionN.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template functionN</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="function/reference.html#header.boost.function.hpp" title="Header &lt;boost/function.hpp&gt;">
+<link rel="prev" href="function_base.html" title="Class function_base">
+<link rel="next" href="boost/function.html" title="Class template function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="boost/function.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="functionN"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template functionN</span></h2>
+<p>boost::functionN &#8212; A set of generalized function pointers that can be used for callbacks or wrapping function objects.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN,
+         <span class="bold"><strong>typename</strong></span> Allocator = std::allocator&lt;<span class="bold"><strong>void</strong></span>&gt; &gt;
+<span class="bold"><strong>class</strong></span> functionN : <span class="bold"><strong>public</strong></span> <a href="function_base.html" title="Class function_base">function_base</a> {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> R         result_type;         
+  <span class="bold"><strong>typedef</strong></span> Allocator allocator_type;      
+  <span class="bold"><strong>typedef</strong></span> T1        argument_type;        <span class="emphasis"><em>// If N == 1</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1        first_argument_type;  <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T2        second_argument_type; <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1        arg1_type;           
+  <span class="bold"><strong>typedef</strong></span> T2        arg2_type;           
+     .
+     .
+     .
+  <span class="bold"><strong>typedef</strong></span> TN        argN_type;           
+
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> arity = N;
+
+  <span class="emphasis"><em>// <a href="lambda.html" title="Chapter 6. Boost.Lambda">Lambda</a> library support</em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Args&gt;
+  <span class="bold"><strong>struct</strong></span> sig {
+    <span class="emphasis"><em>// types</em></span>
+    <span class="bold"><strong>typedef</strong></span> result_type type;
+  };
+
+  <span class="emphasis"><em>// <a href="functionN.html#functionNconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="functionN.html#id1012302-bb">functionN</a>();
+  <a href="functionN.html#id1137156-bb">functionN</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F&gt; <a href="functionN.html#id1072042-bb">functionN</a>(F);
+  functionN&amp; <a href="functionN.html#id803371-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp;);
+  <a href="functionN.html#id906651-bb">~functionN</a>();
+
+  <span class="emphasis"><em>// <a href="functionN.html#id832960-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="functionN.html#id926891-bb">swap</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp;);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="functionN.html#id928812-bb">clear</a>();
+
+  <span class="emphasis"><em>// <a href="functionN.html#id1111060-bb">capacity</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id1001382-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <a href="functionN.html#id903857-bb"><span class="bold"><strong>operator</strong></span> safe_bool</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id896646-bb"><span class="bold"><strong>operator</strong></span>!</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="functionN.html#id824190-bb">target access</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a href="functionN.html#id1073121-bb">target</a>();
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a href="functionN.html#id836826-bb">target</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id1001757-bb">contains</a>(<span class="bold"><strong>const</strong></span> Functor&amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="functionN.html#id1036740-bb">invocation</a></em></span>
+  <span class="type">result_type</span> <a href="functionN.html#id856418-bb"><span class="bold"><strong>operator</strong></span>()</a>(arg1_type, arg2_type, ..., argN_type) <span class="bold"><strong>const</strong></span>;
+};
+
+<span class="emphasis"><em>// <a href="functionN.html#id973157-bb">specialized algorithms</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="functionN.html#id1048560">swap</a>(<a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+            <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+
+<span class="emphasis"><em>// <a href="functionN.html#id1108581-bb">comparison operators</a></em></span>
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id797024-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id962233-bb"><span class="bold"><strong>operator</strong></span>==</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id861450-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+                  <a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id978476-bb"><span class="bold"><strong>operator</strong></span>==</a>(<a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+         <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="functionN.html#id870072-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id974328-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id871257-bb"><span class="bold"><strong>operator</strong></span>!=</a>(Functor, <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id718882-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;,
+                  <a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="functionN.html#id1141032-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+         <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="functionN.html#id938183-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1208676"></a><h2>Description</h2>
+<p>Class template <a href="functionN.html" title="Class template functionN">functionN</a> is
+ actually a family of related classes <a href="functionN.html" title="Class template functionN">function0</a>, <a href="functionN.html" title="Class template functionN">function1</a>, etc., up to some
+ implementation-defined maximum. In this context, <code class="computeroutput">N</code>
+ refers to the number of parameters.</p>
+<div class="refsect2" lang="en">
+<a name="id1208710"></a><h3>
+<a name="functionNconstruct-copy-destruct"></a><code class="computeroutput">functionN</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1012302-bb"></a>functionN();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1137156-bb"></a>functionN(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ Contains a copy of the <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="functionN.html#id1001382-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw unless copying the target of <code class="computeroutput">f</code> throws.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F&gt; <a name="id1072042-bb"></a>functionN(F f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ F is a function object Callable from <code class="computeroutput">this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> targets a copy of <code class="computeroutput">f</code> if <code class="computeroutput">f</code> is nonempty, or <code class="computeroutput">this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code> if <code class="computeroutput">f</code> is empty.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw when <code class="computeroutput">f</code> is a stateless function object.</p>
+</li>
+<li>
+<pre class="literallayout">functionN&amp; <a name="id803371-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> targets a copy of <code class="computeroutput">f</code>'s target, if it has one, or is empty if <code class="computeroutput">f.<a href="functionN.html#id1001382-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw when the target of <code class="computeroutput">f</code> is a stateless function object or a reference to the function object.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id906651-bb"></a>~functionN();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If <code class="computeroutput">!this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code>, destroys the target of this.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209049"></a><h3>
+<a name="id832960-bb"></a><code class="computeroutput">functionN</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id926891-bb"></a>swap(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&amp; f);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Interchanges the targets of <code class="computeroutput">*this</code> and <code class="computeroutput">f</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id928812-bb"></a>clear();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209171"></a><h3>
+<a name="id1111060-bb"></a><code class="computeroutput">functionN</code> capacity</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1001382-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code> if <code class="computeroutput">this</code> has a target, and <code class="computeroutput">true</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id903857-bb"></a><span class="bold"><strong>operator</strong></span> safe_bool() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A <code class="computeroutput">safe_bool</code> that evaluates <code class="computeroutput">false</code> in a boolean context when <code class="computeroutput">this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code>, and <code class="computeroutput">true</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896646-bb"></a><span class="bold"><strong>operator</strong></span>!() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209377"></a><h3>
+<a name="id824190-bb"></a><code class="computeroutput">functionN</code> target access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id1011247-bb"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a name="id1073121-bb"></a>target();
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a name="id836826-bb"></a>target() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If <code class="computeroutput">this</code> stores a target of type
+ <code class="computeroutput">Functor</code>, returns the address of the
+ target. Otherwise, returns the NULL
+ pointer.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1001757-bb"></a>contains(<span class="bold"><strong>const</strong></span> Functor&amp; f) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if <code class="computeroutput">this-&gt;<a href="functionN.html#id1011247-bb">target</a>&lt;Functor&gt;()</code> is non-NULL and <code class="computeroutput"><a href="function_equal.html" title="Function template function_equal">function_equal</a>(*(this-&gt;target&lt;Functor&gt;()), f)</code></p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209574"></a><h3>
+<a name="id1036740-bb"></a><code class="computeroutput">functionN</code> invocation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type">result_type</span> <a name="id856418-bb"></a><span class="bold"><strong>operator</strong></span>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">f(a1, a2, ..., aN)</code>, where <code class="computeroutput">f</code> is the target of <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ if <code class="computeroutput">R</code> is <code class="computeroutput">void</code>, nothing is returned; otherwise, the return value of the call to <code class="computeroutput">f</code> is returned.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput"><a href="bad_function_call.html" title="Class bad_function_call">bad_function_call</a></code> if <code class="computeroutput">!this-&gt;<a href="functionN.html#id1001382-bb">empty</a>()</code>. Otherwise, may through any exception thrown by the target function <code class="computeroutput">f</code>.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209706"></a><h3>
+<a name="id973157-bb"></a><code class="computeroutput">functionN</code> specialized algorithms</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1048560"></a>swap(<a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f1,
+            <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">f1.<a href="functionN.html#id926891-bb">swap</a>(f2)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1209817"></a><h3>
+<a name="id1108581-bb"></a><code class="computeroutput">functionN</code> comparison operators</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id998068"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id797024-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, Functor g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id962233-bb"></a><span class="bold"><strong>operator</strong></span>==(Functor g, <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id861450-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f,
+                  <a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id978476-bb"></a><span class="bold"><strong>operator</strong></span>==(<a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+         <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id870072-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp; f1,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ True when <code class="computeroutput">f</code> stores an object of
+ type <code class="computeroutput">Functor</code> and one of the following conditions applies:
+ <div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">g</code> is of type
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">f.target&lt;Functor&gt;() == g.<a href="reference_wrapper.html#id656887-bb">get_pointer</a>()</code>.</li>
+<li>
+<code class="computeroutput">g</code> is not of type
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and
+ <code class="computeroutput"><a href="function_equal.html" title="Function template function_equal">function_equal</a>(*(f.target&lt;Functor&gt;()),
+ g)</code>.</li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <code class="computeroutput"><a href="functionN.html" title="Class template functionN">functionN</a></code>
+ objects are not
+ <a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The <code class="computeroutput">safe_bool</code> conversion
+ opens a loophole whereby two <code class="computeroutput">functionN</code>
+ instances can be compared via <code class="computeroutput">==</code>, although this
+ is not feasible to implement. The undefined <code class="computeroutput">void
+ operator==</code> closes the loophole and ensures a
+ compile-time or link-time error.</p>
+</li>
+<li>
+<p><a name="id943390"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id974328-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, Functor g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id871257-bb"></a><span class="bold"><strong>operator</strong></span>!=(Functor g, <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id718882-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f,
+                  <a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator,
+         <span class="bold"><strong>typename</strong></span> Functor&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1141032-bb"></a><span class="bold"><strong>operator</strong></span>!=(<a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt; g,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN, <span class="bold"><strong>typename</strong></span> Allocator1,
+         <span class="bold"><strong>typename</strong></span> U1, <span class="bold"><strong>typename</strong></span> U2, ..., <span class="bold"><strong>typename</strong></span> UN, <span class="bold"><strong>typename</strong></span> Allocator2&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id938183-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;T1, T2, ..., TN, Allocator1&gt;&amp; f1,
+                  <span class="bold"><strong>const</strong></span> <a href="functionN.html" title="Class template functionN">functionN</a>&lt;U1, U2, ..., UN, Allocator2&gt;&amp; f2);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ True when <code class="computeroutput">f</code> does not store an
+ object of type <code class="computeroutput">Functor</code> or it stores an object of
+ type <code class="computeroutput">Functor</code> and one of the following conditions
+ applies:
+ <div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">g</code> is of type
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">f.target&lt;Functor&gt;() != g.<a href="reference_wrapper.html#id656887-bb">get_pointer</a>()</code>.</li>
+<li>
+<code class="computeroutput">g</code> is not of type
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;Functor&gt;</code>
+ and <code class="computeroutput">!<a href="function_equal.html" title="Function template function_equal">function_equal</a>(*(f.target&lt;Functor&gt;()), g)</code>.</li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <code class="computeroutput"><a href="functionN.html" title="Class template functionN">functionN</a></code>
+ objects are not
+ <a href="EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The <code class="computeroutput">safe_bool</code> conversion
+ opens a loophole whereby two <code class="computeroutput">functionN</code>
+ instances can be compared via <code class="computeroutput">!=</code>, although this
+ is not feasible to implement. The undefined <code class="computeroutput">void
+ operator!=</code> closes the loophole and ensures a
+ compile-time or link-time error.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="boost/function.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/function_base.html b/doc/html/function_base.html
new file mode 100644
index 0000000000..7ab793b884
--- /dev/null
+++ b/doc/html/function_base.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class function_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="function/reference.html#header.boost.function.hpp" title="Header &lt;boost/function.hpp&gt;">
+<link rel="prev" href="bad_function_call.html" title="Class bad_function_call">
+<link rel="next" href="functionN.html" title="Class template functionN">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_function_call.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="functionN.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="function_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class function_base</span></h2>
+<p>boost::function_base &#8212; The common base class for all Boost.Function
+ objects. Objects of type function_base may not be created
+ directly.</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"><strong>class</strong></span> function_base {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="function_base.html#id1047837-bb">capacity</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function_base.html#id1011473-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="function_base.html#id1048558-bb">target access</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a href="function_base.html#id1040760-bb">target</a>();
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a href="function_base.html#id1002191-bb">target</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="function_base.html#id1082919-bb">contains</a>(<span class="bold"><strong>const</strong></span> Functor&amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1206974"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1206978"></a><h3>
+<a name="id1047837-bb"></a><code class="computeroutput">function_base</code> capacity</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1011473-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">false</code> if <code class="computeroutput">this</code> has a target, and <code class="computeroutput">true</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1207056"></a><h3>
+<a name="id1048558-bb"></a><code class="computeroutput">function_base</code> target access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id838430-bb"></a></p>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type">Functor*</span> <a name="id1040760-bb"></a>target();
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>const</strong></span> Functor*</span> <a name="id1002191-bb"></a>target() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If <code class="computeroutput">this</code> stores a target of type
+ <code class="computeroutput">Functor</code>, returns the address of the
+ target. Otherwise, returns the NULL
+ pointer.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Functor&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1082919-bb"></a>contains(<span class="bold"><strong>const</strong></span> Functor&amp; f) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if <code class="computeroutput">this-&gt;<a href="function_base.html#id838430-bb">target</a>&lt;Functor&gt;()</code> is non-NULL and <code class="computeroutput"><a href="function_equal.html" title="Function template function_equal">function_equal</a>(*(this-&gt;target&lt;Functor&gt;()), f)</code></p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_function_call.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#header.boost.function.hpp"><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="functionN.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/function_equal.html b/doc/html/function_equal.html
new file mode 100644
index 0000000000..fb0f99cfce
--- /dev/null
+++ b/doc/html/function_equal.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template function_equal</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="function/reference.html#id1002914" title="Header &lt;boost/function_equal.hpp&gt;">
+<link rel="prev" href="boost/function.html" title="Class template function">
+<link rel="next" href="function/faq.html" title="Frequently Asked Questions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/function.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#id1002914"><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="function/faq.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="function_equal"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template function_equal</span></h2>
+<p>boost::function_equal &#8212; <p>Compare two function objects for equality.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> F, <span class="bold"><strong>typename</strong></span> G&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> function_equal(<span class="bold"><strong>const</strong></span> F&amp; f, <span class="bold"><strong>const</strong></span> G&amp; g);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1214597"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">f == g</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Only if <code class="computeroutput">f == g</code> throws.</p>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/function.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="function/reference.html#id1002914"><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="function/faq.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/gather_month_strings.html b/doc/html/gather_month_strings.html
new file mode 100644
index 0000000000..703a01f125
--- /dev/null
+++ b/doc/html/gather_month_strings.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template gather_month_strings</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id864292" title="Header &lt;boost/date_time/strings_from_facet.hpp&gt;">
+<link rel="prev" href="string_parse_tree.html" title="Struct template string_parse_tree">
+<link rel="next" href="gather_weekday_strings.html" title="Function template gather_weekday_strings">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_parse_tree.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id864292"><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="gather_weekday_strings.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="gather_month_strings"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template gather_month_strings</span></h2>
+<p>boost::date_time::gather_month_strings &#8212; This function gathers up all the month strings from a std::locale. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">std::vector&lt; std::basic_string&lt; charT &gt; &gt;</span>
+  gather_month_strings(<span class="bold"><strong>const</strong></span> std::locale &amp; locale, <span class="bold"><strong>bool</strong></span> short_strings = true);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1116517"></a><h2>Description</h2>
+<p>Using the time_put facet, this function creates a collection of all the month strings from a locale. This is handy when building custom date parsers or formatters that need to be localized.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">locale</span></dt>
+<dd><p>The locale to use when gathering the strings </p></dd>
+<dt><span class="term">short_strings</span></dt>
+<dd><p>True(default) to gather short strings, false for long strings. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A vector of strings containing the strings in order. eg: Jan, Feb, Mar, etc. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_parse_tree.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id864292"><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="gather_weekday_strings.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/gather_weekday_strings.html b/doc/html/gather_weekday_strings.html
new file mode 100644
index 0000000000..173efeaec0
--- /dev/null
+++ b/doc/html/gather_weekday_strings.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template gather_weekday_strings</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id864292" title="Header &lt;boost/date_time/strings_from_facet.hpp&gt;">
+<link rel="prev" href="gather_month_strings.html" title="Function template gather_month_strings">
+<link rel="next" href="base_time.html" title="Class template base_time">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gather_month_strings.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id864292"><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="base_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="gather_weekday_strings"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template gather_weekday_strings</span></h2>
+<p>boost::date_time::gather_weekday_strings &#8212; This function gathers up all the weekday strings from a std::locale. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">std::vector&lt; std::basic_string&lt; charT &gt; &gt;</span>
+  gather_weekday_strings(<span class="bold"><strong>const</strong></span> std::locale &amp; locale,
+                         <span class="bold"><strong>bool</strong></span> short_strings = true);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1116608"></a><h2>Description</h2>
+<p>Using the time_put facet, this function creates a collection of all the weekday strings from a locale starting with the string for 'Sunday'. This is handy when building custom date parsers or formatters that need to be localized.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">locale</span></dt>
+<dd><p>The locale to use when gathering the strings </p></dd>
+<dt><span class="term">short_strings</span></dt>
+<dd><p>True(default) to gather short strings, false for long strings. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A vector of strings containing the weekdays in order. eg: Sun, Mon, Tue, Wed, Thu, Fri, Sat </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gather_month_strings.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id864292"><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="base_time.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/get.html b/doc/html/get.html
new file mode 100644
index 0000000000..3eec7e12df
--- /dev/null
+++ b/doc/html/get.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function get</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id894482" title="Header &lt;boost/variant/get.hpp&gt;">
+<link rel="prev" href="bad_get.html" title="Class bad_get">
+<link rel="next" href="bad_visit.html" title="Class bad_visit">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_get.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id894482"><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="bad_visit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="get"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function get</span></h2>
+<p>boost::get &#8212; <p>Retrieves a value of a specified type from a given
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type">U *</span> get(<a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; * operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type"><span class="bold"><strong>const</strong></span> U *</span> get(<span class="bold"><strong>const</strong></span> <a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; * operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type">U &amp;</span> get(<a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp; operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type"><span class="bold"><strong>const</strong></span> U &amp;</span> get(<span class="bold"><strong>const</strong></span> <a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp; operand);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1669589"></a><h2>Description</h2>
+<p>The <code class="computeroutput">get</code> function allows run-time checked,
+ type-safe retrieval of the content of the given
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>. The function succeeds
+ only if the content is of the specified type <code class="computeroutput">U</code>, with
+ failure indicated as described below.</p>
+<p><span class="bold"><strong>Warning</strong></span>: After either
+ <code class="computeroutput">operand</code> or its content is destroyed (e.g., when the
+ given <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> is assigned a
+ value of different type), the returned reference is invalidated.
+ Thus, significant care and caution must be extended when handling
+ the returned reference.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ As part of its guarantee of type-safety, <code class="computeroutput">get</code>
+ enforces <code class="computeroutput">const</code>-correctness. Thus, the specified type
+ <code class="computeroutput">U</code> must be <code class="computeroutput">const</code>-qualified whenever
+ <code class="computeroutput">operand</code> or its content is likewise
+ <code class="computeroutput">const</code>-qualified. The converse, however, is not required:
+ that is, the specified type <code class="computeroutput">U</code> may be
+ <code class="computeroutput">const</code>-qualified even when <code class="computeroutput">operand</code> and its
+ content are not.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ If passed a pointer, <code class="computeroutput">get</code> returns a pointer to
+ the value content if it is of the specified type <code class="computeroutput">U</code>;
+ otherwise, a null pointer is returned. If passed a reference,
+ <code class="computeroutput">get</code> returns a reference to the value content if it is of
+ the specified type <code class="computeroutput">U</code>; otherwise, an exception is thrown
+ (see below).<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Overloads taking a
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> pointer will not
+ throw; the overloads taking a
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> reference throw
+ <code class="computeroutput"><a href="bad_get.html" title="Class bad_get">bad_get</a></code> if the content is not of
+ the specified type <code class="computeroutput">U</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ While visitation via
+ <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code>
+ is generally prefered due to its greater safety, <code class="computeroutput">get</code> may
+ may be more convenient in some cases due to its straightforward
+ usage.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_get.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id894482"><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="bad_visit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_day.html b/doc/html/greg_day.html
new file mode 100644
index 0000000000..ff6c184b89
--- /dev/null
+++ b/doc/html/greg_day.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class greg_day</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id906477" title="Header &lt;boost/date_time/gregorian/greg_day.hpp&gt;">
+<link rel="prev" href="bad_day_of_month.html" title="Struct bad_day_of_month">
+<link rel="next" href="bad_day_of_year.html" title="Struct bad_day_of_year">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_day_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906477"><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="bad_day_of_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_day"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class greg_day</span></h2>
+<p>boost::gregorian::greg_day &#8212; Represent a day of the month (range 1 - 31). </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"><strong>class</strong></span> greg_day {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="greg_day.html#greg_dayconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="greg_day.html#id1070144-bb">greg_day</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>);
+
+  <span class="emphasis"><em>// <a href="greg_day.html#id862783-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="greg_day.html#id862789-bb">as_number</a>() <span class="bold"><strong>const</strong></span>;
+  <a href="greg_day.html#id967916-bb"><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1150850"></a><h2>Description</h2>
+<p>This small class allows for simple conversion an integer value into a day of the month for a standard gregorian calendar. The type is automatically range checked so values outside of the range 1-31 will cause a bad_day_of_month exception </p>
+<div class="refsect2" lang="en">
+<a name="id1150860"></a><h3>
+<a name="greg_dayconstruct-copy-destruct"></a><code class="computeroutput">greg_day</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1070144-bb"></a>greg_day(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> day_of_month);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1150903"></a><h3>
+<a name="id862783-bb"></a><code class="computeroutput">greg_day</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id862789-bb"></a>as_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><a name="id967916-bb"></a><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_day_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906477"><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="bad_day_of_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_durations_config.html b/doc/html/greg_durations_config.html
new file mode 100644
index 0000000000..d77db55119
--- /dev/null
+++ b/doc/html/greg_durations_config.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct greg_durations_config</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id891684" title="Header &lt;boost/date_time/gregorian/greg_duration_types.hpp&gt;">
+<link rel="prev" href="bad_day_of_year.html" title="Struct bad_day_of_year">
+<link rel="next" href="greg_facet_config.html" title="Struct greg_facet_config">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_day_of_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891684"><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="greg_facet_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_durations_config"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct greg_durations_config</span></h2>
+<p>boost::gregorian::greg_durations_config &#8212; config struct for additional duration types (ie months_duration&lt;&gt; &amp; years_duration&lt;&gt;) </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"><strong>struct</strong></span> greg_durations_config {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="boost/gregorian/date.html" title="Class date">date</a>                                  date_type;          
+  <span class="bold"><strong>typedef</strong></span> date_time::int_adapter&lt; <span class="bold"><strong>int</strong></span> &gt;         int_rep;            
+  <span class="bold"><strong>typedef</strong></span> date_time::month_functor&lt; date_type &gt; month_adjustor_type;
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_day_of_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891684"><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="greg_facet_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_facet_config.html b/doc/html/greg_facet_config.html
new file mode 100644
index 0000000000..5ec09561e3
--- /dev/null
+++ b/doc/html/greg_facet_config.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct greg_facet_config</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856825" title="Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;">
+<link rel="prev" href="greg_durations_config.html" title="Struct greg_durations_config">
+<link rel="next" href="id1037413.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_durations_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id1037413.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_facet_config"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct greg_facet_config</span></h2>
+<p>boost::gregorian::greg_facet_config &#8212; Configuration of the output facet template. </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"><strong>struct</strong></span> greg_facet_config {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="greg_month.html" title="Class greg_month">boost::gregorian::greg_month</a>     month_type;        
+  <span class="bold"><strong>typedef</strong></span> boost::date_time::special_values special_value_enum;
+  <span class="bold"><strong>typedef</strong></span> boost::gregorian::months_of_year month_enum;        
+  <span class="bold"><strong>typedef</strong></span> boost::date_time::weekdays       weekday_enum;      
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_durations_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id1037413.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_month.html b/doc/html/greg_month.html
new file mode 100644
index 0000000000..d422ce9dda
--- /dev/null
+++ b/doc/html/greg_month.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class greg_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id871347" title="Header &lt;boost/date_time/gregorian/greg_month.hpp&gt;">
+<link rel="prev" href="bad_month.html" title="Struct bad_month">
+<link rel="next" href="bad_weekday.html" title="Struct bad_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id871347"><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="bad_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class greg_month</span></h2>
+<p>boost::gregorian::greg_month &#8212; Wrapper class to represent months in gregorian based calendar. </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"><strong>class</strong></span> greg_month {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_time::months_of_year               month_enum;        
+  <span class="bold"><strong>typedef</strong></span> std::map&lt; std::string, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> &gt; month_map_type;    
+  <span class="bold"><strong>typedef</strong></span> boost::shared_ptr&lt; month_map_type &gt;     month_map_ptr_type;
+
+  <span class="emphasis"><em>// <a href="greg_month.html#greg_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="greg_month.html#id792405-bb">greg_month</a>(month_enum);
+  <a href="greg_month.html#id977020-bb">greg_month</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>);
+
+  <span class="emphasis"><em>// <a href="greg_month.html#id802836-bb">public member functions</a></em></span>
+  <a href="greg_month.html#id802841-bb"><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="greg_month.html#id792211-bb">as_number</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_enum</span> <a href="greg_month.html#id792228-bb">as_enum</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_month.html#id1034304-bb">as_short_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_month.html#id894041-bb">as_long_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_month.html#id939620-bb">as_short_wstring</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_month.html#id939633-bb">as_long_wstring</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_month.html#id939646-bb">as_short_string</a>(<span class="bold"><strong>char</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_month.html#id939670-bb">as_long_string</a>(<span class="bold"><strong>char</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_month.html#id894508-bb">as_short_string</a>(<span class="bold"><strong>wchar_t</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_month.html#id894531-bb">as_long_string</a>(<span class="bold"><strong>wchar_t</strong></span>) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="greg_month.html#id833093-bb">public static functions</a></em></span>
+  <span class="type">month_map_ptr_type</span> <a href="greg_month.html#id977054-bb">get_month_map_ptr</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1153354"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1153358"></a><h3>
+<a name="greg_monthconstruct-copy-destruct"></a><code class="computeroutput">greg_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id792405-bb"></a>greg_month(month_enum theMonth);</pre></li>
+<li><pre class="literallayout"><a name="id977020-bb"></a>greg_month(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> theMonth);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1153417"></a><h3>
+<a name="id802836-bb"></a><code class="computeroutput">greg_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id802841-bb"></a><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id792211-bb"></a>as_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_enum</span> <a name="id792228-bb"></a>as_enum() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id1034304-bb"></a>as_short_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id894041-bb"></a>as_long_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id939620-bb"></a>as_short_wstring() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id939633-bb"></a>as_long_wstring() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id939646-bb"></a>as_short_string(<span class="bold"><strong>char</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id939670-bb"></a>as_long_string(<span class="bold"><strong>char</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id894508-bb"></a>as_short_string(<span class="bold"><strong>wchar_t</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id894531-bb"></a>as_long_string(<span class="bold"><strong>wchar_t</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1171281"></a><h3>
+<a name="id833093-bb"></a><code class="computeroutput">greg_month</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">month_map_ptr_type</span> <a name="id977054-bb"></a>get_month_map_ptr() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id871347"><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="bad_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_weekday.html b/doc/html/greg_weekday.html
new file mode 100644
index 0000000000..cbcfae2574
--- /dev/null
+++ b/doc/html/greg_weekday.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class greg_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id973291" title="Header &lt;boost/date_time/gregorian/greg_weekday.hpp&gt;">
+<link rel="prev" href="bad_weekday.html" title="Struct bad_weekday">
+<link rel="next" href="bad_year.html" title="Struct bad_year">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id973291"><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="bad_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class greg_weekday</span></h2>
+<p>boost::gregorian::greg_weekday &#8212; Represent a day within a week (range 0==Sun to 6==Sat). </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"><strong>class</strong></span> greg_weekday {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::date_time::weekdays weekday_enum;
+
+  <span class="emphasis"><em>// <a href="greg_weekday.html#greg_weekdayconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="greg_weekday.html#id835917-bb">greg_weekday</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>);
+
+  <span class="emphasis"><em>// <a href="greg_weekday.html#id902174-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="greg_weekday.html#id902179-bb">as_number</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_weekday.html#id902192-bb">as_short_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="greg_weekday.html#id795612-bb">as_long_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_weekday.html#id902512-bb">as_short_wstring</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="greg_weekday.html#id902525-bb">as_long_wstring</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">weekday_enum</span> <a href="greg_weekday.html#id860465-bb">as_enum</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1171761"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1171764"></a><h3>
+<a name="greg_weekdayconstruct-copy-destruct"></a><code class="computeroutput">greg_weekday</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id835917-bb"></a>greg_weekday(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> day_of_week_num);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1171810"></a><h3>
+<a name="id902174-bb"></a><code class="computeroutput">greg_weekday</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id902179-bb"></a>as_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id902192-bb"></a>as_short_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id795612-bb"></a>as_long_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id902512-bb"></a>as_short_wstring() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id902525-bb"></a>as_long_wstring() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">weekday_enum</span> <a name="id860465-bb"></a>as_enum() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id973291"><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="bad_year.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/greg_year.html b/doc/html/greg_year.html
new file mode 100644
index 0000000000..155f709921
--- /dev/null
+++ b/doc/html/greg_year.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class greg_year</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866121" title="Header &lt;boost/date_time/gregorian/greg_year.hpp&gt;">
+<link rel="prev" href="bad_year.html" title="Struct bad_year">
+<link rel="next" href="special_value_from_string.html" title="Function special_value_from_string">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866121"><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="special_value_from_string.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="greg_year"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class greg_year</span></h2>
+<p>boost::gregorian::greg_year &#8212; Represent a day of the month (range 1900 - 10000). </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"><strong>class</strong></span> greg_year {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="greg_year.html#greg_yearconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="greg_year.html#id1034383-bb">greg_year</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>);
+
+  <span class="emphasis"><em>// <a href="greg_year.html#id970636-bb">public member functions</a></em></span>
+  <a href="greg_year.html#id1034369-bb"><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1172328"></a><h2>Description</h2>
+<p>This small class allows for simple conversion an integer value into a year for the gregorian calendar. This currently only allows a range of 1900 to 10000. Both ends of the range are a bit arbitrary at the moment, but they are the limits of current testing of the library. As such they may be increased in the future. </p>
+<div class="refsect2" lang="en">
+<a name="id1172339"></a><h3>
+<a name="greg_yearconstruct-copy-destruct"></a><code class="computeroutput">greg_year</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1034383-bb"></a>greg_year(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> year);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1172383"></a><h3>
+<a name="id970636-bb"></a><code class="computeroutput">greg_year</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1034369-bb"></a><span class="bold"><strong>operator</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>() <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866121"><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="special_value_from_string.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/gregorian_calendar.html b/doc/html/gregorian_calendar.html
new file mode 100644
index 0000000000..439f4f4753
--- /dev/null
+++ b/doc/html/gregorian_calendar.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class gregorian_calendar</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1035654" title="Header &lt;boost/date_time/gregorian/greg_calendar.hpp&gt;">
+<link rel="prev" href="year_month_day_base.html" title="Struct template year_month_day_base">
+<link rel="next" href="boost/gregorian/date.html" title="Class date">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_month_day_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1035654"><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="boost/gregorian/date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="gregorian_calendar"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class gregorian_calendar</span></h2>
+<p>boost::gregorian::gregorian_calendar &#8212; Gregorian calendar for this implementation, hard work in the base. </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"><strong>class</strong></span> gregorian_calendar {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="greg_weekday.html" title="Class greg_weekday">greg_weekday</a>         day_of_week_type; <span class="emphasis"><em>// Type to hold a weekday (eg: Sunday, Monday,...). </em></span>
+  <span class="bold"><strong>typedef</strong></span> greg_day_of_year_rep day_of_year_type; <span class="emphasis"><em>// Counter type from 1 to 366 for gregorian dates. </em></span>
+  <span class="bold"><strong>typedef</strong></span> fancy_date_rep       date_rep_type;    <span class="emphasis"><em>// Internal date representation that handles infinity, not a date. </em></span>
+  <span class="bold"><strong>typedef</strong></span> fancy_date_rep       date_traits_type; <span class="emphasis"><em>// Date rep implements the traits stuff as well. </em></span>
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_month_day_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1035654"><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="boost/gregorian/date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/gregorian_calendar_base.html b/doc/html/gregorian_calendar_base.html
new file mode 100644
index 0000000000..d193923024
--- /dev/null
+++ b/doc/html/gregorian_calendar_base.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template gregorian_calendar_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1040370" title="Header &lt;boost/date_time/gregorian_calendar.hpp&gt;">
+<link rel="prev" href="var_string_to_int.html" title="Function template var_string_to_int">
+<link rel="next" href="int_adapter.html" title="Class template int_adapter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="var_string_to_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1040370"><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="int_adapter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="gregorian_calendar_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template gregorian_calendar_base</span></h2>
+<p>boost::date_time::gregorian_calendar_base &#8212; An implementation of the Gregorian calendar. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type_, <span class="bold"><strong>typename</strong></span> date_int_type_&gt;
+<span class="bold"><strong>class</strong></span> gregorian_calendar_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> ymd_type_            ymd_type;      <span class="emphasis"><em>// define a type a date split into components </em></span>
+  <span class="bold"><strong>typedef</strong></span> ymd_type::month_type month_type;    <span class="emphasis"><em>// define a type for representing months </em></span>
+  <span class="bold"><strong>typedef</strong></span> ymd_type::day_type   day_type;      <span class="emphasis"><em>// define a type for representing days </em></span>
+  <span class="bold"><strong>typedef</strong></span> ymd_type::year_type  year_type;     <span class="emphasis"><em>// Type to hold a stand alone year value (eg: 2002). </em></span>
+  <span class="bold"><strong>typedef</strong></span> date_int_type_       date_int_type; <span class="emphasis"><em>// Define the integer type to use for internal calculations. </em></span>
+
+  <span class="emphasis"><em>// <a href="gregorian_calendar_base.html#id941162-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="gregorian_calendar_base.html#id941168-bb">day_of_week</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;) ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="gregorian_calendar_base.html#id1034416-bb">week_number</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;) ;
+  <span class="type">date_int_type</span> <a href="gregorian_calendar_base.html#id905305-bb">day_number</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;) ;
+  <span class="type">date_int_type</span> <a href="gregorian_calendar_base.html#id1001477-bb">julian_day_number</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;) ;
+  <span class="type"><span class="bold"><strong>long</strong></span></span> <a href="gregorian_calendar_base.html#id976324-bb">modjulian_day_number</a>(<span class="bold"><strong>const</strong></span> ymd_type &amp;) ;
+  <span class="type">ymd_type</span> <a href="gregorian_calendar_base.html#id1112653-bb">from_day_number</a>(date_int_type) ;
+  <span class="type">ymd_type</span> <a href="gregorian_calendar_base.html#id1112676-bb">from_julian_day_number</a>(date_int_type) ;
+  <span class="type">ymd_type</span> <a href="gregorian_calendar_base.html#id996933-bb">from_modjulian_day_number</a>(<span class="bold"><strong>long</strong></span>) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="gregorian_calendar_base.html#id827792-bb">is_leap_year</a>(year_type) ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="gregorian_calendar_base.html#id907769-bb">end_of_month_day</a>(year_type, month_type) ;
+  <span class="type">ymd_type</span> <a href="gregorian_calendar_base.html#id931113-bb">epoch</a>() ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="gregorian_calendar_base.html#id964718-bb">days_in_week</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1102908"></a><h2>Description</h2>
+<p>This is a parameterized implementation of a proleptic Gregorian Calendar that can be used in the creation of date systems or just to perform calculations. All the methods of this class are static functions, so the intent is to never create instances of this class.
+</p>
+<div class="refsect2" lang="en">
+<a name="id1102918"></a><h3>
+<a name="id941162-bb"></a><code class="computeroutput">gregorian_calendar_base</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id941168-bb"></a>day_of_week(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id1034416-bb"></a>week_number(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_int_type</span> <a name="id905305-bb"></a>day_number(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_int_type</span> <a name="id1001477-bb"></a>julian_day_number(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>long</strong></span></span> <a name="id976324-bb"></a>modjulian_day_number(<span class="bold"><strong>const</strong></span> ymd_type &amp; ymd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_type</span> <a name="id1112653-bb"></a>from_day_number(date_int_type ) ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_type</span> <a name="id1112676-bb"></a>from_julian_day_number(date_int_type ) ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_type</span> <a name="id996933-bb"></a>from_modjulian_day_number(<span class="bold"><strong>long</strong></span> ) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id827792-bb"></a>is_leap_year(year_type ) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id907769-bb"></a>end_of_month_day(year_type y, month_type m) ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_type</span> <a name="id931113-bb"></a>epoch() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id964718-bb"></a>days_in_week() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="var_string_to_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1040370"><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="int_adapter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/has_const_time_erase.html b/doc/html/has_const_time_erase.html
new file mode 100644
index 0000000000..4ee9f3a4e6
--- /dev/null
+++ b/doc/html/has_const_time_erase.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template has_const_time_erase</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id657172" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">
+<link rel="prev" href="replace_tail.html" title="Function template replace_tail">
+<link rel="next" href="has_const_time_insert.html" title="Class template has_const_time_insert">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_const_time_insert.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="has_const_time_erase"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template has_const_time_erase</span></h2>
+<p>boost::algorithm::has_const_time_erase &#8212; Const time erase trait. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> has_const_time_erase {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> mpl::bool_&lt; <a href="has_const_time_erase.html" title="Class template has_const_time_erase">has_const_time_erase</a>&lt; T &gt;::value &gt; type;
+
+  <span class="bold"><strong>static</strong></span> const bool value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354168"></a><h2>Description</h2>
+<p>This trait specifies that the sequence's erase method has constant time complexity. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_tail.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_const_time_insert.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/has_const_time_insert.html b/doc/html/has_const_time_insert.html
new file mode 100644
index 0000000000..fb2d946c95
--- /dev/null
+++ b/doc/html/has_const_time_insert.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template has_const_time_insert</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id657172" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">
+<link rel="prev" href="has_const_time_erase.html" title="Class template has_const_time_erase">
+<link rel="next" href="has_native_replace.html" title="Class template has_native_replace">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_const_time_erase.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_native_replace.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="has_const_time_insert"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template has_const_time_insert</span></h2>
+<p>boost::algorithm::has_const_time_insert &#8212; Const time insert trait. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> has_const_time_insert {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> mpl::bool_&lt; <a href="has_const_time_insert.html" title="Class template has_const_time_insert">has_const_time_insert</a>&lt; T &gt;::value &gt; type;
+
+  <span class="bold"><strong>static</strong></span> const bool value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354246"></a><h2>Description</h2>
+<p>This trait specifies that the sequence's insert method has constant time complexity. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_const_time_erase.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_native_replace.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/has_native_replace.html b/doc/html/has_native_replace.html
new file mode 100644
index 0000000000..bf72c359f1
--- /dev/null
+++ b/doc/html/has_native_replace.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template has_native_replace</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id657172" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">
+<link rel="prev" href="has_const_time_insert.html" title="Class template has_const_time_insert">
+<link rel="next" href="has_stable_iterators.html" title="Class template has_stable_iterators">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_const_time_insert.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_stable_iterators.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="has_native_replace"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template has_native_replace</span></h2>
+<p>boost::algorithm::has_native_replace &#8212; Native replace trait. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> has_native_replace {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> mpl::bool_&lt; <a href="has_native_replace.html" title="Class template has_native_replace">has_native_replace</a>&lt; T &gt;::value &gt; type;
+
+  <span class="bold"><strong>static</strong></span> const bool value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354324"></a><h2>Description</h2>
+<p>This trait specifies that the sequence has <code class="computeroutput">std::string</code> like replace method </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_const_time_insert.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="has_stable_iterators.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/has_stable_iterators.html b/doc/html/has_stable_iterators.html
new file mode 100644
index 0000000000..3b90ff237c
--- /dev/null
+++ b/doc/html/has_stable_iterators.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template has_stable_iterators</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id657172" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">
+<link rel="prev" href="has_native_replace.html" title="Class template has_native_replace">
+<link rel="next" href="find_all.html" title="Function template find_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_native_replace.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="find_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="has_stable_iterators"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template has_stable_iterators</span></h2>
+<p>boost::algorithm::has_stable_iterators &#8212; Stable iterators trait. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> has_stable_iterators {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> mpl::bool_&lt; <a href="has_stable_iterators.html" title="Class template has_stable_iterators">has_stable_iterators</a>&lt; T &gt;::value &gt; type;
+
+  <span class="bold"><strong>static</strong></span> const bool value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354406"></a><h2>Description</h2>
+<p>This trait specifies that the sequence has stable iterators. It means that operations like insert/erase/replace do not invalidate iterators. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_native_replace.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id657172"><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="find_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash.html b/doc/html/hash.html
index b7b722ffb9..541a5e59f3 100644
--- a/doc/html/hash.html
+++ b/doc/html/hash.html
@@ -1,10 +1,105 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/hash.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/hash.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/hash.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 5. Boost.Functional/Hash</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="function/testsuite.html" title="Testsuite">
+<link rel="next" href="hash/tutorial.html" title=" Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function/testsuite.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="hash/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="hash"></a>Chapter 5. Boost.Functional/Hash</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Daniel</span> <span class="surname">James</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2005 Daniel James</p></div>
+<div><div class="legalnotice">
+<a name="id1215750"></a><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" target="_top">
+ http://www.boost.org/LICENSE_1_0.txt
+ </a>)
+
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="hash.html#hash.intro"> Introduction</a></span></dt>
+<dt><span class="section"><a href="hash/tutorial.html"> Tutorial</a></span></dt>
+<dt><span class="section"><a href="hash/custom.html"> Extending boost::hash for a custom data type</a></span></dt>
+<dt><span class="section"><a href="hash/combine.html"> Combining hash values</a></span></dt>
+<dt><span class="section"><a href="hash/portability.html"> Portability</a></span></dt>
+<dt><span class="section"><a href="hash/reference_.html"> Reference</a></span></dt>
+<dt><span class="section"><a href="hash/links.html"> Links</a></span></dt>
+<dt><span class="section"><a href="hash/acknowledgements.html"> Acknowledgements</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="hash.intro"></a> Introduction</h3></div></div></div>
+<p><code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code> is an implementation of the <a href="http://en.wikipedia.org/wiki/Hash_function" target="_top">hash function</a> object
+specified by the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf" target="_top">Technical Report</a>. It is intended for use as the default hash function
+for unordered associative containers, and the <a href="../../libs/multi_index/doc/index.html" target="_top">Boost Multi-Index Containers Library</a>'s hash indexes.</p>
+<p>
+As it is compliant with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf" target="_top">Technical Report</a>, it will work with:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+integers
+</li>
+<li>
+floats
+</li>
+<li>
+pointers
+</li>
+<li>
+strings
+</li>
+</ul></div>
+<p>
+It also implements the extension proposed by Peter Dimov in issue 6.18 of the
+<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf" target="_top">Library Extension Technical Report Issues List</a>, this adds support for:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+arrays
+</li>
+<li><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code></li>
+<li>
+the standard containers.
+</li>
+<li>
+extending <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code> for custom types.
+</li>
+</ul></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 31, 2005 at 15:55:26 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function/testsuite.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="hash/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/hash/acknowledgements.html b/doc/html/hash/acknowledgements.html
new file mode 100644
index 0000000000..c97f560025
--- /dev/null
+++ b/doc/html/hash/acknowledgements.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="links.html" title=" Links">
+<link rel="next" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="links.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="../lambda.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="hash.acknowledgements"></a> Acknowledgements</h3></div></div></div>
+<p>
+This library is based on the design by Peter Dimov. During the inital development
+Joaquín M López Muñoz made many useful suggestions and contributed fixes.</p>
+<p>
+The review was managed by Thorsten Ottosen, and the library reviewed by:
+David Abrahams, Alberto Barbati, Topher Cooper, Caleb Epstein, Dave Harris,
+Chris Jefferson, Bronek Kozicki, John Maddock, Tobias Swinger,Jaap Suter
+and Rob Stewart.</p>
+<p>
+The implementation of the hash function for pointers is based on suggestions
+made by Alberto Barbati and Dave Harris. Dave Harris also suggested an
+important improvement to <code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> that was taken up.</p>
+<p>
+The original implementation came from Jeremy B. Maitin-Shepard's hash table
+library, although this is a complete rewrite.</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="links.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="../lambda.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/combine.html b/doc/html/hash/combine.html
new file mode 100644
index 0000000000..8e0d2b94e9
--- /dev/null
+++ b/doc/html/hash/combine.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Combining hash values</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="custom.html" title=" Extending boost::hash for a custom data type">
+<link rel="next" href="portability.html" title=" Portability">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="custom.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="portability.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="hash.combine"></a> Combining hash values</h3></div></div></div>
+<p>
+Say you have a point class, representing a two dimensional location:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">class</span><span class="identifier"> point</span><span class="special">
+{</span><span class="keyword">
+ int</span><span class="identifier"> x</span><span class="special">;</span><span class="keyword">
+ int</span><span class="identifier"> y</span><span class="special">;</span><span class="keyword">
+public</span><span class="special">:</span><span class="identifier">
+ point</span><span class="special">()</span><span class="special"> :</span><span class="identifier"> x</span><span class="special">(</span><span class="number">0</span><span class="special">),</span><span class="identifier"> y</span><span class="special">(</span><span class="number">0</span><span class="special">)</span><span class="special"> {}</span><span class="identifier">
+ point</span><span class="special">(</span><span class="keyword">int</span><span class="identifier"> x</span><span class="special">,</span><span class="keyword"> int</span><span class="identifier"> y</span><span class="special">)</span><span class="special"> :</span><span class="identifier"> x</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">y</span><span class="special">)</span><span class="special"> {}</span><span class="keyword">
+
+ bool</span><span class="keyword"> operator</span><span class="special">==(</span><span class="identifier">point</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> other</span><span class="special">)</span><span class="keyword"> const</span><span class="special">
+ {</span><span class="keyword">
+ return</span><span class="identifier"> x</span><span class="special"> =</span><span class="identifier"> other</span><span class="special">.</span><span class="identifier">x</span><span class="special"> &amp;&amp;</span><span class="identifier"> y</span><span class="special"> ==</span><span class="identifier"> other</span><span class="special">.</span><span class="identifier">y</span><span class="special">;</span><span class="special">
+ }</span><span class="special">
+};</span></code></pre>
+<p>
+and you wish to use it as the key for an <code class="computeroutput"><span class="identifier">unordered_map</span></code>. You need to
+customise the hash for this structure. To do this we need to combine
+the hash values for <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="identifier">y</span></code>. The function
+<code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> is supplied for this purpose:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">class</span><span class="identifier"> point</span><span class="special">
+{</span><span class="special">
+ ...</span><span class="keyword">
+
+ friend</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash_value</span><span class="special">(</span><span class="identifier">point</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> p</span><span class="special">)</span><span class="special">
+ {</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> seed</span><span class="special"> =</span><span class="number"> 0</span><span class="special">;</span>
+        <code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code><span class="special">(</span><span class="identifier">seed</span><span class="special">,</span><span class="identifier"> p</span><span class="special">.</span><span class="identifier">x</span><span class="special">);</span>
+        <code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code><span class="special">(</span><span class="identifier">seed</span><span class="special">,</span><span class="identifier"> p</span><span class="special">.</span><span class="identifier">y</span><span class="special">);</span><span class="keyword">
+
+ return</span><span class="identifier"> seed</span><span class="special">;</span><span class="special">
+ }</span><span class="special">
+
+ ...</span><span class="special">
+};</span></code></pre>
+<p>
+Calls to hash_combine incrementally build the hash from the different members
+of point, it can be repeatedly called for any number of elements. It calls
+<code class="computeroutput"><a href="../id1042434.html" title="Function hash_value">hash_value</a></code> on the supplied element, and combines it with the seed.</p>
+<p>
+Full code for this example is at
+<a href="../../../libs/functional/hash/examples/point.cpp" target="_top">/libs/functional/hash/examples/point.cpp</a>.</p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+When using __hash_combine the order of the
+calls matters.
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+ std::size_t seed = 0;
+ boost::hash_combine(seed, 1);
+ boost::hash_combine(seed, 2);
+</pre>
+results in a different seed to:
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+ std::size_t seed = 0;
+ boost::hash_combine(seed, 2);
+ boost::hash_combine(seed, 1);
+</pre>
+If you are calculating a hash value for data where the order of the data
+doesn't matter in comparisons (e.g. a set) you will have to ensure that the
+data is always supplied in the same order.
+
+</td></tr></tbody>
+</table></div>
+<p>
+To calculate the hash of an iterator range you can use <code class="computeroutput"><a href="../hash_range.html" title="Function hash_range">boost::hash_range</a></code>:</p>
+<pre class="programlisting"><code class="literal"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</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="identifier"> some_strings</span><span class="special">;</span><span class="identifier">
+std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash</span><span class="special"> =</span> <code class="computeroutput"><a href="../hash_range.html" title="Function hash_range">boost::hash_range</a></code><span class="special">(</span><span class="identifier">some_strings</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span><span class="identifier"> some_strings</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span></code></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"><small>Copyright © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="custom.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="portability.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/custom.html b/doc/html/hash/custom.html
new file mode 100644
index 0000000000..a7fc568809
--- /dev/null
+++ b/doc/html/hash/custom.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Extending boost::hash for a custom data type</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="tutorial.html" title=" Tutorial">
+<link rel="next" href="combine.html" title=" Combining hash values">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="combine.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="hash.custom"></a> Extending boost::hash for a custom data type</h3></div></div></div>
+<p><code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> is implemented by calling the function <code class="computeroutput"><a href="../id1042434.html" title="Function hash_value">hash_value</a></code>.
+The namespace isn't specified so that it can detect overloads via argument
+dependant lookup. So if there is a free function <code class="computeroutput"><span class="identifier">hash_value</span></code> in the same
+namespace as a custom type, it will get called.</p>
+<p>
+If you have a structure <code class="computeroutput"><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span></code>, where each <code class="computeroutput"><span class="identifier">book</span></code> is uniquely
+defined by it's member <code class="computeroutput"><span class="identifier">id</span></code>:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">namespace</span><span class="identifier"> library</span><span class="special">
+{</span><span class="keyword">
+ struct</span><span class="identifier"> book</span><span class="special">
+ {</span><span class="keyword">
+ int</span><span class="identifier"> id</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">string</span><span class="identifier"> author</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">string</span><span class="identifier"> title</span><span class="special">;</span><span class="comment">
+
+ // ....
+</span><span class="special"> };</span><span class="keyword">
+
+ bool</span><span class="keyword"> operator</span><span class="special">==(</span><span class="identifier">book</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> a</span><span class="special">,</span><span class="identifier"> book</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> b</span><span class="special">)</span><span class="special">
+ {</span><span class="keyword">
+ return</span><span class="identifier"> a</span><span class="special">.</span><span class="identifier">id</span><span class="special"> ==</span><span class="identifier"> b</span><span class="special">.</span><span class="identifier">id</span><span class="special">;</span><span class="special">
+ }</span><span class="special">
+}</span></code></pre>
+<p>
+Then all you would need to do is write the function <code class="computeroutput"><span class="identifier">library</span><span class="special">::</span><span class="identifier">hash_value</span></code>:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">namespace</span><span class="identifier"> library</span><span class="special">
+{</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash_value</span><span class="special">(</span><span class="identifier">book</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> b</span><span class="special">)</span><span class="special">
+ {</span>
+        <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="identifier"> hasher</span><span class="special">;</span><span class="keyword">
+ return</span><span class="identifier"> hasher</span><span class="special">(</span><span class="identifier">b</span><span class="special">.</span><span class="identifier">id</span><span class="special">);</span><span class="special">
+ }</span><span class="special">
+}</span></code></pre>
+<p>
+And you can now use <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> with book:</p>
+<pre class="programlisting"><code class="literal"><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="identifier"> knife</span><span class="special">(</span><span class="number">3458</span><span class="special">,</span><span class="string"> "Zane Grey"</span><span class="special">,</span><span class="string"> "The Hash Knife Outfit"</span><span class="special">);</span><span class="identifier">
+library</span><span class="special">::</span><span class="identifier">book</span><span class="identifier"> dandelion</span><span class="special">(</span><span class="number">1354</span><span class="special">,</span><span class="string"> "Paul J. Shanley"</span><span class="special">,</span><span class="string">
+ "Hash &amp; Dandelion Greens"</span><span class="special">);</span><code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="special">&gt;</span><span class="identifier"> book_hasher</span><span class="special">;</span><span class="identifier">
+std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> knife_hash_value</span><span class="special"> =</span><span class="identifier"> book_hasher</span><span class="special">(</span><span class="identifier">knife</span><span class="special">);</span><span class="comment">
+
+// If std::unordered_set is available:
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">unordered_set</span><span class="special">&lt;</span><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="special">,</span> <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="special">&gt;</span><span class="special"> &gt;</span><span class="identifier"> books</span><span class="special">;</span><span class="identifier">
+books</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">knife</span><span class="special">);</span><span class="identifier">
+books</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="special">(</span><span class="number">2443</span><span class="special">,</span><span class="string"> "Lindgren, Torgny"</span><span class="special">,</span><span class="string"> "Hash"</span><span class="special">));</span><span class="identifier">
+books</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">library</span><span class="special">::</span><span class="identifier">book</span><span class="special">(</span><span class="number">1953</span><span class="special">,</span><span class="string"> "Snyder, Bernadette M."</span><span class="special">,</span><span class="string">
+ "Heavenly Hash: A Tasty Mix of a Mother's Meditations"</span><span class="special">));</span><span class="identifier">
+
+assert</span><span class="special">(</span><span class="identifier">books</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">knife</span><span class="special">)</span><span class="special"> !=</span><span class="identifier"> books</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span><span class="identifier">
+assert</span><span class="special">(</span><span class="identifier">books</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">dandelion</span><span class="special">)</span><span class="special"> ==</span><span class="identifier"> books</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span></code></pre>
+<p>
+The full example can be found in:
+<a href="../../../libs/functional/hash/examples/books.cpp" target="_top">/libs/functional/hash/examples/books.hpp</a>
+and
+<a href="../../../libs/functional/hash/examples/books.cpp" target="_top">/libs/functional/hash/examples/books.cpp</a>.</p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+When writing a hash function, first look at how the equality function works.
+Objects that are equal must generate the same hash value.
+When objects are not equal the should generate different hash values.
+In this object equality was based just on the id, if it was based
+on the objects name and author the hash function should take them into account
+(how to do this is discussed in the next section).
+</td></tr></tbody>
+</table></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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="combine.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/links.html b/doc/html/hash/links.html
new file mode 100644
index 0000000000..8b23df1f1f
--- /dev/null
+++ b/doc/html/hash/links.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Links</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="../id873294.html" title="Function hash_value">
+<link rel="next" href="acknowledgements.html" title=" Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id873294.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="acknowledgements.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="hash.links"></a> Links</h3></div></div></div>
+<p><span class="bold"><strong>A Proposal to Add Hash Tables to the Standard Library</strong></span><br><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1456.html" target="_top">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1456.html</a><br>
+
+The hash table proposal explains much of the design. The hash function object
+is discussed in Section D.</p>
+<p><span class="bold"><strong>The C++ Standard Library Technical Report.</strong></span><br><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf" target="_top">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf</a><br>
+
+Contains the hash function specification in section 6.3.2.</p>
+<p><span class="bold"><strong>Library Extension Technical Report Issues List.</strong></span><br><a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf" target="_top">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf</a><br>
+
+The library implements the extension described in Issue 6.18.</p>
+<p><span class="bold"><strong>Methods for Identifying Versioned and Plagiarised Documents</strong></span><br>
+
+Timothy C. Hoad, Justin Zobel<br><a href="http://www.cs.rmit.edu.au/~jz/fulltext/jasist-tch.pdf" target="_top">http://www.cs.rmit.edu.au/~jz/fulltext/jasist-tch.pdf</a><br>
+
+Contains the hash function that <code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> is based on.</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id873294.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="acknowledgements.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/portability.html b/doc/html/hash/portability.html
new file mode 100644
index 0000000000..58b2f83a15
--- /dev/null
+++ b/doc/html/hash/portability.html
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Portability</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="combine.html" title=" Combining hash values">
+<link rel="next" href="reference_.html" title=" Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="combine.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="reference_.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="hash.portability"></a> Portability</h3></div></div></div>
+<p><code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> is written to be as portable as possible, but unfortunately, several
+older compilers don't support argument dependent lookup (ADL) - the mechanism
+used for customization. On those compilers custom overloads for hash_value
+need to be declared in the boost namespace.</p>
+<p>
+On a strictly standards compliant compiler, an overload defined in the
+boost namespace won't be found when <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> is instantiated,
+so for these compilers the overload should only be declared in the same
+namespace as the class.</p>
+<p>
+Let's say we have a simple custom type:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">namespace</span><span class="identifier"> foo</span><span class="special">
+{</span><span class="keyword">
+ struct</span><span class="identifier"> custom_type</span><span class="special">
+ {</span><span class="keyword">
+ int</span><span class="identifier"> value</span><span class="special">;</span><span class="keyword">
+
+ friend</span><span class="keyword"> inline</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash_value</span><span class="special">(</span><span class="identifier">custom_type</span><span class="identifier"> x</span><span class="special">)</span><span class="special">
+ {</span>
+            <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="identifier"> hasher</span><span class="special">;</span><span class="keyword">
+ return</span><span class="identifier"> hasher</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span><span class="special">);</span><span class="special">
+ }</span><span class="special">
+ };</span><span class="special">
+}</span></code></pre>
+<p>
+On a compliant compiler, when <code class="computeroutput"><span class="identifier">hash_value</span></code> is called for this type,
+it will look at the namespace inside the type and find <code class="computeroutput"><span class="identifier">hash_value</span></code>
+but on a compiler which doesn't support ADL <code class="computeroutput"><span class="identifier">hash_value</span></code> won't be found.</p>
+<p>
+So on these compilers define a member function:</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#ifndef</span><span class="identifier"> BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP</span><span class="keyword">
+ friend</span><span class="keyword"> inline</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash_value</span><span class="special">(</span><span class="identifier">custom_type</span><span class="identifier"> x</span><span class="special">)</span><span class="special">
+ {</span>
+            <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="identifier"> hasher</span><span class="special">;</span><span class="keyword">
+ return</span><span class="identifier"> hasher</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span><span class="special">);</span><span class="special">
+ }</span><span class="preprocessor">
+#else</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash</span><span class="special">()</span><span class="keyword"> const</span><span class="special">
+ {</span>
+            <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="identifier"> hasher</span><span class="special">;</span><span class="keyword">
+ return</span><span class="identifier"> hasher</span><span class="special">(</span><span class="identifier">value</span><span class="special">);</span><span class="special">
+ }</span><span class="preprocessor">
+#endif</span></code></pre>
+<p>
+which will be called from the <code class="computeroutput"><span class="identifier">boost</span></code> namespace:</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#ifdef</span><span class="identifier"> BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP</span><span class="keyword">
+namespace</span><span class="identifier"> boost</span><span class="special">
+{</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> hash_value</span><span class="special">(</span><span class="identifier">foo</span><span class="special">::</span><span class="identifier">custom_type</span><span class="identifier"> x</span><span class="special">)</span><span class="special">
+ {</span><span class="keyword">
+ return</span><span class="identifier"> x</span><span class="special">.</span><span class="identifier">hash</span><span class="special">();</span><span class="special">
+ }</span><span class="special">
+}</span><span class="preprocessor">
+#endif</span></code></pre>
+<p>
+Full code for this example is at
+<a href="../../../libs/functional/hash/examples/portable.cpp" target="_top">/libs/functional/hash/examples/portable.cpp</a>.</p>
+<a name="portability.other_issues"></a><h2>
+<a name="id1219332"></a>Other Issues</h2>
+<p>
+On Visual C++ versions 6.5 and 7.0, <code class="computeroutput"><span class="identifier">hash_value</span></code> isn't overloaded for built in
+arrays. <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="../hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> and <code class="computeroutput"><a href="../hash_range.html" title="Function hash_range">boost::hash_range</a></code> all use a workaround to
+support built in arrays so this shouldn't be a problem in most cases.</p>
+<p>
+On Visual C++ versions 6.5 and 7.0, function pointers aren't currently supported.</p>
+<p><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_value</span><span class="special">(</span><span class="keyword">long</span><span class="keyword"> double</span><span class="special">)</span></code> on GCC on Solaris appears to treat
+<code class="computeroutput"><span class="keyword">long</span><span class="keyword"> double</span></code>s as doubles - so the hash function doesn't take into account the
+full range of values.</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="combine.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="reference_.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/reference_.html b/doc/html/hash/reference_.html
new file mode 100644
index 0000000000..1702ec21f3
--- /dev/null
+++ b/doc/html/hash/reference_.html
@@ -0,0 +1,163 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="portability.html" title=" Portability">
+<link rel="next" href="../boost/hash.html" title="Struct template hash">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="portability.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="../boost/hash.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="hash.reference_"></a> Reference</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="hash.reference"></a>Reference</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference_.html#hash.reference.specification"></a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1082053">Header &lt;boost/functional/hash.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1082064">Header &lt;boost/functional/hash/hash.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1081880">Header &lt;boost/functional/hash/pair.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id999017">Header &lt;boost/functional/hash/vector.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1067315">Header &lt;boost/functional/hash/list.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1068774">Header &lt;boost/functional/hash/deque.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id836835">Header &lt;boost/functional/hash/set.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference_.html#id1034618">Header &lt;boost/functional/hash/map.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"></div>
+<p>For the full specification, see section 6.3 of the
+ <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf" target="_top">C++ Standard Library Technical Report</a>
+ and issue 6.18 of the
+ <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf" target="_top">Library Extension Technical Report Issues List</a>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1082053"></a>Header &lt;<a href="../../../boost/functional/hash.hpp" target="_top">boost/functional/hash.hpp</a>&gt;</h6></div></div></div>
+<p>Includes all the following headers.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1082064"></a>Header &lt;<a href="../../../boost/functional/hash/hash.hpp" target="_top">boost/functional/hash/hash.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Defines <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code>,
+ the implementation for built in types and
+ <code class="computeroutput">std::string</code> and customisation functions.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>struct</strong></span> <a href="../boost/hash.html" title="Struct template hash">hash</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../hash_combine.html" title="Function template hash_combine">hash_combine</a>(size_t &amp;, T <span class="bold"><strong>const</strong></span> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> It&gt; <span class="type">std::size_t</span> <a href="../hash_range.html" title="Function hash_range">hash_range</a>(It, It);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> It&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../hash_range.html" title="Function hash_range">hash_range</a>(std::size_t&amp;, It, It);
+  <span class="type">std::size_t</span> <a href="../id1042434.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>int</strong></span>);
+  <span class="type">std::size_t</span> <a href="../id1042434.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+  <span class="type">std::size_t</span> <a href="../id1042434.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>long</strong></span>);
+  <span class="type">std::size_t</span> <a href="../id1042434.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span>);
+  <span class="type">std::size_t</span> <a href="../id802125.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>float</strong></span>);
+  <span class="type">std::size_t</span> <a href="../id802125.html" title="Function hash_value">hash_value</a>(double);
+  <span class="type">std::size_t</span> <a href="../id802125.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>long</strong></span> double);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">std::size_t</span> <a href="../id1001098.html" title="Function hash_value">hash_value</a>(T* <span class="bold"><strong>const</strong></span>&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>unsigned</strong></span> N&gt; <span class="type">std::size_t</span> <a href="../id1070986.html" title="Function hash_value">hash_value</a>(T (&amp;val)[N]);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>unsigned</strong></span> N&gt; <span class="type">std::size_t</span> <a href="../id1070986.html" title="Function hash_value">hash_value</a>(<span class="bold"><strong>const</strong></span> T (&amp;val)[N]);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Ch, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id897675.html" title="Function hash_value">hash_value</a>(std::basic_string&lt;Ch, std::char_traits&lt;Ch&gt;, A&gt; <span class="bold"><strong>const</strong></span>&amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1081880"></a>Header &lt;<a href="../../../boost/functional/hash/pair.hpp" target="_top">boost/functional/hash/pair.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::pair</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> A, <span class="bold"><strong>typename</strong></span> B&gt;
+    <span class="type">std::size_t</span> <a href="../id975607.html" title="Function hash_value">hash_value</a>(std::pair&lt;A, B&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id999017"></a>Header &lt;<a href="../../../boost/functional/hash/vector.hpp" target="_top">boost/functional/hash/vector.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::vector</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id1000285.html" title="Function hash_value">hash_value</a>(std::vector&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1067315"></a>Header &lt;<a href="../../../boost/functional/hash/list.hpp" target="_top">boost/functional/hash/list.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::list</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id1067334.html" title="Function hash_value">hash_value</a>(std::list&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1068774"></a>Header &lt;<a href="../../../boost/functional/hash/deque.hpp" target="_top">boost/functional/hash/deque.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::deque</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id1068792.html" title="Function hash_value">hash_value</a>(std::deque&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id836835"></a>Header &lt;<a href="../../../boost/functional/hash/set.hpp" target="_top">boost/functional/hash/set.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::set</code> and <code class="computeroutput">std::multiset</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id898032.html" title="Function hash_value">hash_value</a>(std::set&lt;K, C, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id898032.html" title="Function hash_value">hash_value</a>(std::multiset&lt;K, C, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1034618"></a>Header &lt;<a href="../../../boost/functional/hash/map.hpp" target="_top">boost/functional/hash/map.hpp</a>&gt;</h6></div></div></div>
+<p>
+ Hash implementation for <code class="computeroutput">std::map</code> and <code class="computeroutput">std::multimap</code>.
+ </p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id873294.html" title="Function hash_value">hash_value</a>(std::map&lt;K, T, C, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+    <span class="type">std::size_t</span> <a href="../id873294.html" title="Function hash_value">hash_value</a>(std::multimap&lt;K, T, C, A&gt; <span class="bold"><strong>const</strong></span> &amp;);
+}</pre>
+</div>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="portability.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="../boost/hash.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash/tutorial.html b/doc/html/hash/tutorial.html
new file mode 100644
index 0000000000..3da9975377
--- /dev/null
+++ b/doc/html/hash/tutorial.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="prev" href="../hash.html" title="Chapter 5. Boost.Functional/Hash">
+<link rel="next" href="custom.html" title=" Extending boost::hash for a custom data type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../hash.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="custom.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="hash.tutorial"></a> Tutorial</h3></div></div></div>
+<p>
+When using a hash index with <a href="../../../libs/multi_index/doc/index.html" target="_top">Boost.MultiIndex</a>, you don't need to do
+anything to use <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> as it uses it by default.
+To find out how to use a user-defined type, read the
+<a href="custom.html" title=" Extending boost::hash for a custom data type">section on extending boost::hash for a custom data type</a>.</p>
+<p>
+If your standard library supplies its own implementation of the unordered
+associative containers and you wish to use
+<code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code>, just use an extra template parameter:</p>
+<pre class="programlisting"><code class="literal"><span class="identifier">std</span><span class="special">::</span><span class="identifier">unordered_multiset</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;,</span> <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="special"> &gt;</span><span class="identifier">
+ set_of_ints</span><span class="special">;</span><span class="identifier">
+
+std</span><span class="special">::</span><span class="identifier">unordered_set</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;,</span> <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;</span><span class="special"> &gt;</span><span class="identifier">
+ set_of_pairs</span><span class="special">;</span><span class="identifier">
+
+std</span><span class="special">::</span><span class="identifier">unordered_map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span><span class="special"> &gt;</span><span class="identifier"> map_int_to_string</span><span class="special">;</span></code></pre>
+<p>
+To use <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code> directly, create an instance and call it as a function:</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="special"> &lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">hash</span><span class="special">/</span><span class="identifier">hash</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>
+    <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><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="identifier"> string_hash</span><span class="special">;</span><span class="identifier">
+
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> h</span><span class="special"> =</span><span class="identifier"> string_hash</span><span class="special">(</span><span class="string">"Hash me"</span><span class="special">);</span><span class="special">
+}</span></code></pre>
+<p>
+If you wish to make use of the extensions, you will need to include the
+appropriate header (see the
+<a href="reference_.html#hash.reference.specification" title="">reference documentation</a> for the full list).</p>
+<pre class="programlisting"><code class="literal"><span class="preprocessor">#include</span><span class="special"> &lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">hash</span><span class="special">/</span><span class="identifier">pair</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>
+    <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword"> int</span><span class="special">&gt;</span><span class="special"> &gt;</span><span class="identifier"> pair_hash</span><span class="special">;</span><span class="identifier">
+
+ std</span><span class="special">::</span><span class="identifier">size_t</span><span class="identifier"> h</span><span class="special"> =</span><span class="identifier"> pair_hash</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number"> 2</span><span class="special">));</span><span class="special">
+}</span></code></pre>
+<p>
+Or alternatively, include <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">hash</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> for the full library.</p>
+<p>
+For an example of generic use, here is a function to generate a vector
+containing the hashes of the elements of a container:</p>
+<pre class="programlisting"><code class="literal"><span class="keyword">template</span><span class="special"> &lt;</span><span class="keyword">class</span><span class="identifier"> Container</span><span class="special">&gt;</span><span class="identifier">
+std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">&gt;</span><span class="identifier"> get_hashes</span><span class="special">(</span><span class="identifier">Container</span><span class="keyword"> const</span><span class="special">&amp;</span><span class="identifier"> x</span><span class="special">)</span><span class="special">
+{</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">&gt;</span><span class="identifier"> hashes</span><span class="special">;</span><span class="identifier">
+ std</span><span class="special">::</span><span class="identifier">transform</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span><span class="identifier"> x</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span><span class="identifier"> std</span><span class="special">::</span><span class="identifier">insert_iterator</span><span class="special">(</span><span class="identifier">hashes</span><span class="special">),</span>
+        <code class="computeroutput"><a href="../boost/hash.html" title="Struct template hash">boost::hash</a></code><span class="special">&lt;</span><span class="keyword">typename</span><span class="identifier"> Container</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">&gt;());</span><span class="keyword">
+
+ return</span><span class="identifier"> hashes</span><span class="special">;</span><span class="special">
+}</span></code></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"><small>Copyright © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../hash.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hash.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="custom.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash_combine.html b/doc/html/hash_combine.html
new file mode 100644
index 0000000000..10a8fa506d
--- /dev/null
+++ b/doc/html/hash_combine.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template hash_combine</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="boost/hash.html" title="Struct template hash">
+<link rel="next" href="hash_range.html" title="Function hash_range">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/hash.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="hash_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="hash_combine"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template hash_combine</span></h2>
+<p>boost::hash_combine &#8212;
+ Called repeatedly to incrementally create a hash value from
+ several variables.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> hash_combine(size_t &amp; seed, T <span class="bold"><strong>const</strong></span> &amp; v);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220102"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <pre class="programlisting">seed ^= <a href="id1042434.html" title="Function hash_value">hash_value</a>(v) + 0x9e3779b9 + (seed &lt;&lt; 6) + (seed &gt;&gt; 2);</pre><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <a href="id1042434.html" title="Function hash_value">hash_value</a> is called without
+ qualification, so that overloads can be found via ADL.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <a href="id1042434.html" title="Function hash_value">hash_value</a>(T) throws.
+ Strong exception safety, as long as <a href="id1042434.html" title="Function hash_value">hash_value</a>(T)
+ also has strong exception safety.
+ </p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/hash.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="hash_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hash_range.html b/doc/html/hash_range.html
new file mode 100644
index 0000000000..41984aa41e
--- /dev/null
+++ b/doc/html/hash_range.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_range</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="hash_combine.html" title="Function template hash_combine">
+<link rel="next" href="id1042434.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash_combine.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1042434.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="hash_range"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_range</span></h2>
+<p>boost::hash_range &#8212;
+ Calculate the combined hash value of the elements of an iterator
+ range.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> It&gt; <span class="type">std::size_t</span> hash_range(It first, It last);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> It&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> hash_range(std::size_t&amp; seed, It first, It last);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220222"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ For the two argument overload:
+<pre class="programlisting">
+size_t seed = 0;
+
+for(; first != last; ++first)
+{
+ <a href="hash_combine.html" title="Function template hash_combine">hash_combine</a>(seed, *first);
+}
+
+return seed;
+</pre>For the three arguments overload:
+<pre class="programlisting">
+for(; first != last; ++first)
+{
+ <a href="hash_combine.html" title="Function template hash_combine">hash_combine</a>(seed, *first);
+}
+</pre><p></p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <code class="computeroutput">hash_range</code> is sensitive to the order of the elements
+ so it wouldn't be appropriate to use this with an unordered
+ container.
+ <p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(std::iterator_traits&lt;It&gt;::value_type)</code>
+ throws. <code class="computeroutput">hash_range(std::size_t&amp;, It, It)</code> has basic exception safety as long as
+ <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(std::iterator_traits&lt;It&gt;::value_type)</code>
+ has basic exception safety.
+ </p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash_combine.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1042434.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/head_finder.html b/doc/html/head_finder.html
new file mode 100644
index 0000000000..47e8697f2a
--- /dev/null
+++ b/doc/html/head_finder.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function head_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="nth_finder.html" title="Function nth_finder">
+<link rel="next" href="tail_finder.html" title="Function tail_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="tail_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="head_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function head_finder</span></h2>
+<p>boost::algorithm::head_finder &#8212; "Head" finder </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="type"><span class="emphasis"><em>unspecified</em></span></span> head_finder(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325089"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">head_finder</code> . The finder returns a head of a given input. The head is a prefix of a string up to n elements in size. If an input has less then n elements, whole input is considered a head. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">N</span></dt>
+<dd><p>The size of the head </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">head_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="tail_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/hours.html b/doc/html/hours.html
new file mode 100644
index 0000000000..86ba4e6497
--- /dev/null
+++ b/doc/html/hours.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class hours</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id975624" title="Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;">
+<link rel="prev" href="id974575.html" title="Class millisec_posix_time_system_config">
+<link rel="next" href="minutes.html" title="Class minutes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974575.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="minutes.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="hours"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class hours</span></h2>
+<p>boost::posix_time::hours &#8212; Allows expression of durations as an hour count. </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"><strong>class</strong></span> hours : <span class="bold"><strong>public</strong></span> boost::posix_time::time_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="hours.html#hoursconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="hours.html#id928183-bb">hours</a>(<span class="bold"><strong>long</strong></span>);
+
+  <span class="emphasis"><em>// <a href="hours.html#id967508-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1176760"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1176763"></a><h3>
+<a name="hoursconstruct-copy-destruct"></a><code class="computeroutput">hours</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id928183-bb"></a>hours(<span class="bold"><strong>long</strong></span> h);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1176801"></a><h3>
+<a name="id967508-bb"></a><code class="computeroutput">hours</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974575.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="minutes.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/icontains.html b/doc/html/icontains.html
new file mode 100644
index 0000000000..8102aefdce
--- /dev/null
+++ b/doc/html/icontains.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template icontains</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="contains.html" title="Function contains">
+<link rel="next" href="equals.html" title="Function equals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="contains.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="equals.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="icontains"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template icontains</span></h2>
+<p>boost::algorithm::icontains &#8212; 'Contains' predicate ( case insensitive ) </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> icontains(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test,
+                 <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1327270"></a><h2>Description</h2>
+<p>This predicate holds when the test container is contained in the Input. Elements are compared case insensitively.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="contains.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="equals.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1000125.html b/doc/html/id1000125.html
new file mode 100644
index 0000000000..327a55b1aa
--- /dev/null
+++ b/doc/html/id1000125.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id660313.html" title="Function operator+=">
+<link rel="next" href="id802530.html" title="Function operator-=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id660313.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id802530.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1000125"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-</span></h2>
+<p>boost::posix_time::operator- &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> <a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175182"></a><h2>Description</h2>
+<p>Subtracts a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id660313.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id802530.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1000285.html b/doc/html/id1000285.html
new file mode 100644
index 0000000000..f5c00c6976
--- /dev/null
+++ b/doc/html/id1000285.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id999017" title="Header &lt;boost/functional/hash/vector.hpp&gt;">
+<link rel="prev" href="id975607.html" title="Function hash_value">
+<link rel="next" href="id1067334.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id975607.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id999017"><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="id1067334.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1000285"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::vector&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1221229"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">hash_range</a>(val.begin(), val.end());</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(T)</code> throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id975607.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id999017"><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="id1067334.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1001098.html b/doc/html/id1001098.html
new file mode 100644
index 0000000000..52b73e6836
--- /dev/null
+++ b/doc/html/id1001098.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="id802125.html" title="Function hash_value">
+<link rel="next" href="id1070986.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id802125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1070986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1001098"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212;
+ Implementation of a hash function for pointers.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">std::size_t</span> hash_value(T* <span class="bold"><strong>const</strong></span>&amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220610"></a><h2>Description</h2>
+<p>
+ Generally shouldn't be called directly by users, instead they should use
+ <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">boost::hash_range</a></code>
+ or <code class="computeroutput"><a href="hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> which
+ call hash_value without namespace qualification so that overloads
+ for custom types are found via ADL.
+ </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Overloads for other types supplied in other headers.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+
+ An unspecified value, except that equal arguments shall yield the same
+ result
+ </p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id802125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1070986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1002952-bb.html b/doc/html/id1002952-bb.html
new file mode 100644
index 0000000000..4722f5cd00
--- /dev/null
+++ b/doc/html/id1002952-bb.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class basic_parsed_options&lt;wchar_t&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="basic_parsed_options.html" title="Class template basic_parsed_options">
+<link rel="next" href="parse_command_line.html" title="Function template parse_command_line">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_parsed_options.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="parse_command_line.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1002952-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class basic_parsed_options&lt;wchar_t&gt;</span></h2>
+<p>boost::program_options::basic_parsed_options&lt;wchar_t&gt; &#8212; </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"><strong>class</strong></span> basic_parsed_options&lt;<span class="bold"><strong>wchar_t</strong></span>&gt; {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="id1002952-bb.html#id1138337-bb">public member functions</a></em></span>
+  <span class="type"></span> <a href="id1002952-bb.html#id1003162-bb">basic_parsed_options</a>(<span class="bold"><strong>const</strong></span> <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>char</strong></span> &gt; &amp;) ;
+
+  std::vector&lt; <a href="basic_option.html" title="Class template basic_option">basic_option</a>&lt; wchar_t &gt; &gt; options;
+  const <a href="options_description.html" title="Class options_description">options_description</a> * description;
+  <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; char &gt; utf8_encoded_options;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255566"></a><h2>Description</h2>
+<p>Specialization of basic_parsed_options which:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>provides convenient conversion from basic_parsed_options&lt;char&gt;</p></li>
+<li><p>stores the passed char-based options for later use. </p></li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1255583"></a><h3>
+<a name="id1138337-bb"></a><code class="computeroutput">basic_parsed_options</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"></span> <a name="id1003162-bb"></a>basic_parsed_options(<span class="bold"><strong>const</strong></span> <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>char</strong></span> &gt; &amp; po) ;</pre>
+<p>Constructs wrapped options from options in UTF8 encoding. </p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="basic_parsed_options.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="parse_command_line.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1003606.html b/doc/html/id1003606.html
new file mode 100644
index 0000000000..5ba5d3d4ac
--- /dev/null
+++ b/doc/html/id1003606.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_time_period_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856862" title="Header &lt;boost/date_time/time_formatting_streams.hpp&gt;">
+<link rel="prev" href="ostream_time_formatter.html" title="Class template ostream_time_formatter">
+<link rel="next" href="time_itr.html" title="Class template time_itr">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_time_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="time_itr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1003606"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_time_period_formatter</span></h2>
+<p>boost::date_time::ostream_time_period_formatter &#8212; Put a time period into a stream using appropriate facets. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_period_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_time_period_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt;                ostream_type;  
+  <span class="bold"><strong>typedef</strong></span> time_period_type::point_type               time_type;     
+  <span class="bold"><strong>typedef</strong></span> <a href="ostream_time_formatter.html" title="Class template ostream_time_formatter">ostream_time_formatter</a>&lt; time_type, charT &gt; time_formatter;
+
+  <span class="emphasis"><em>// <a href="id1003606.html#id1003669-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="id1003606.html#id1003674-bb">period_put</a>(<span class="bold"><strong>const</strong></span> time_period_type &amp;, ostream_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1140717"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1140720"></a><h3>
+<a name="id1003669-bb"></a><code class="computeroutput">ostream_time_period_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1003674-bb"></a>period_put(<span class="bold"><strong>const</strong></span> time_period_type &amp; tp, ostream_type &amp; os) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_time_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="time_itr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1004063.html b/doc/html/id1004063.html
new file mode 100644
index 0000000000..eba767d636
--- /dev/null
+++ b/doc/html/id1004063.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template parse_delimited_time_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004001" title="Header &lt;boost/date_time/time_parsing.hpp&gt;">
+<link rel="prev" href="time_itr.html" title="Class template time_itr">
+<link rel="next" href="id1004324.html" title="Struct time_resolution_traits_bi32_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_itr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004001"><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="id1004324.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1004063"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template parse_delimited_time_duration</span></h2>
+<p>boost::date_time::parse_delimited_time_duration &#8212; Creates a time_duration object from a delimited string. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration&gt;
+  <span class="type"><a href="id829552.html" title="Class template time_duration">time_duration</a></span> parse_delimited_time_duration(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1141610"></a><h2>Description</h2>
+<p>Expected format for string is "[-]h[h][:mm][:ss][.fff]". If the number of fractional digits provided is greater than the precision of the time duration type then the extra digits are truncated.</p>
+<p>A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_itr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004001"><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="id1004324.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1004324.html b/doc/html/id1004324.html
new file mode 100644
index 0000000000..9d7c78499a
--- /dev/null
+++ b/doc/html/id1004324.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct time_resolution_traits_bi32_impl</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004309" title="Header &lt;boost/date_time/time_resolution_traits.hpp&gt;">
+<link rel="prev" href="id1004063.html" title="Function template parse_delimited_time_duration">
+<link rel="next" href="id1004405.html" title="Struct time_resolution_traits_adapted32_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004063.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004405.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1004324"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct time_resolution_traits_bi32_impl</span></h2>
+<p>boost::date_time::time_resolution_traits_bi32_impl &#8212; traits struct for time_resolution_traits implementation type </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"><strong>struct</strong></span> time_resolution_traits_bi32_impl {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::int32_t int_type; 
+  <span class="bold"><strong>typedef</strong></span> boost::int32_t impl_type;
+
+  <span class="emphasis"><em>// <a href="id1004324.html#id1004356-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="id1004324.html#id1004361-bb">as_number</a>(impl_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1004324.html#id1004384-bb">is_adapted</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1141935"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1141938"></a><h3>
+<a name="id1004356-bb"></a><code class="computeroutput">time_resolution_traits_bi32_impl</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id1004361-bb"></a>as_number(impl_type i) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1004384-bb"></a>is_adapted() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004063.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004405.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1004405.html b/doc/html/id1004405.html
new file mode 100644
index 0000000000..8c45b2ef6e
--- /dev/null
+++ b/doc/html/id1004405.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct time_resolution_traits_adapted32_impl</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004309" title="Header &lt;boost/date_time/time_resolution_traits.hpp&gt;">
+<link rel="prev" href="id1004324.html" title="Struct time_resolution_traits_bi32_impl">
+<link rel="next" href="id1004493.html" title="Struct time_resolution_traits_bi64_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004324.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004493.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1004405"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct time_resolution_traits_adapted32_impl</span></h2>
+<p>boost::date_time::time_resolution_traits_adapted32_impl &#8212; traits struct for time_resolution_traits implementation type </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"><strong>struct</strong></span> time_resolution_traits_adapted32_impl {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::int32_t                                  int_type; 
+  <span class="bold"><strong>typedef</strong></span> <a href="int_adapter.html" title="Class template int_adapter">boost::date_time::int_adapter</a>&lt; boost::int32_t &gt; impl_type;
+
+  <span class="emphasis"><em>// <a href="id1004405.html#id1004439-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="id1004405.html#id1004444-bb">as_number</a>(impl_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1004405.html#id1004472-bb">is_adapted</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1142087"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1142090"></a><h3>
+<a name="id1004439-bb"></a><code class="computeroutput">time_resolution_traits_adapted32_impl</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id1004444-bb"></a>as_number(impl_type i) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1004472-bb"></a>is_adapted() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004324.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004493.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1004493.html b/doc/html/id1004493.html
new file mode 100644
index 0000000000..eec1aa2f7a
--- /dev/null
+++ b/doc/html/id1004493.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct time_resolution_traits_bi64_impl</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004309" title="Header &lt;boost/date_time/time_resolution_traits.hpp&gt;">
+<link rel="prev" href="id1004405.html" title="Struct time_resolution_traits_adapted32_impl">
+<link rel="next" href="id1004573.html" title="Struct time_resolution_traits_adapted64_impl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004405.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004573.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1004493"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct time_resolution_traits_bi64_impl</span></h2>
+<p>boost::date_time::time_resolution_traits_bi64_impl &#8212; traits struct for time_resolution_traits implementation type </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"><strong>struct</strong></span> time_resolution_traits_bi64_impl {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::int64_t int_type; 
+  <span class="bold"><strong>typedef</strong></span> boost::int64_t impl_type;
+
+  <span class="emphasis"><em>// <a href="id1004493.html#id1004524-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="id1004493.html#id1004529-bb">as_number</a>(impl_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1004493.html#id1004553-bb">is_adapted</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1142231"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1142234"></a><h3>
+<a name="id1004524-bb"></a><code class="computeroutput">time_resolution_traits_bi64_impl</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id1004529-bb"></a>as_number(impl_type i) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1004553-bb"></a>is_adapted() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004405.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="id1004573.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1004573.html b/doc/html/id1004573.html
new file mode 100644
index 0000000000..518f3e89ed
--- /dev/null
+++ b/doc/html/id1004573.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct time_resolution_traits_adapted64_impl</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004309" title="Header &lt;boost/date_time/time_resolution_traits.hpp&gt;">
+<link rel="prev" href="id1004493.html" title="Struct time_resolution_traits_bi64_impl">
+<link rel="next" href="time_resolution_traits.html" title="Class template time_resolution_traits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004493.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="time_resolution_traits.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1004573"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct time_resolution_traits_adapted64_impl</span></h2>
+<p>boost::date_time::time_resolution_traits_adapted64_impl &#8212; traits struct for time_resolution_traits implementation type </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"><strong>struct</strong></span> time_resolution_traits_adapted64_impl {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::int64_t                                  int_type; 
+  <span class="bold"><strong>typedef</strong></span> <a href="int_adapter.html" title="Class template int_adapter">boost::date_time::int_adapter</a>&lt; boost::int64_t &gt; impl_type;
+
+  <span class="emphasis"><em>// <a href="id1004573.html#id1004607-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="id1004573.html#id1004613-bb">as_number</a>(impl_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1004573.html#id1004641-bb">is_adapted</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1142383"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1142386"></a><h3>
+<a name="id1004607-bb"></a><code class="computeroutput">time_resolution_traits_adapted64_impl</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id1004613-bb"></a>as_number(impl_type i) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1004641-bb"></a>is_adapted() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004493.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="time_resolution_traits.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1010247.html b/doc/html/id1010247.html
new file mode 100644
index 0000000000..c7860582a4
--- /dev/null
+++ b/doc/html/id1010247.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function parse_environment</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="parse_config_file.html" title="Function template parse_config_file">
+<link rel="next" href="id1045724.html" title="Function parse_environment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_config_file.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1045724.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1010247"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function parse_environment</span></h2>
+<p>boost::program_options::parse_environment &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+parse_environment(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; ,
+                  <span class="bold"><strong>const</strong></span> function1&lt; std::string, std::string &gt; &amp; name_mapper);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255845"></a><h2>Description</h2>
+<p>Parse environment.</p>
+<p>For each environment variable, the 'name_mapper' function is called to obtain the option name. If it returns empty string, the variable is ignored.</p>
+<p>This is done since naming of environment variables is typically different from the naming of command line options. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_config_file.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1045724.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1037413.html b/doc/html/id1037413.html
new file mode 100644
index 0000000000..5f79a1fbd5
--- /dev/null
+++ b/doc/html/id1037413.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856825" title="Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;">
+<link rel="prev" href="greg_facet_config.html" title="Struct greg_facet_config">
+<link rel="next" href="id934588.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_facet_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id934588.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1037413"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::gregorian::operator&lt;&lt; &#8212; ostream operator for gregorian::date </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+  <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <span class="bold"><strong>const</strong></span> <a href="boost/gregorian/date.html" title="Class date">date</a> &amp; d);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1152433"></a><h2>Description</h2>
+<p>Uses the date facet to determine various output parameters including:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>string values for the month (eg: Jan, Feb, Mar) (default: English)</p></li>
+<li><p>string values for special values (eg: not-a-date-time) (default: English)</p></li>
+<li><p>selection of long, short strings, or numerical month representation (default: short string)</p></li>
+<li><p>month day year order (default yyyy-mmm-dd) </p></li>
+</ul></div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_facet_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id934588.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1038994.html b/doc/html/id1038994.html
new file mode 100644
index 0000000000..73ee72f0f8
--- /dev/null
+++ b/doc/html/id1038994.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id858004.html" title="Function operator+">
+<link rel="next" href="id795566.html" title="Function operator-">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id858004.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id795566.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1038994"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+=</span></h2>
+<p>boost::local_time::operator+= &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>+=(local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180164"></a><h2>Description</h2>
+<p>Adds a months object to a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id858004.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id795566.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1042434.html b/doc/html/id1042434.html
new file mode 100644
index 0000000000..bb630c4d17
--- /dev/null
+++ b/doc/html/id1042434.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="hash_range.html" title="Function hash_range">
+<link rel="next" href="id802125.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id802125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1042434"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212;
+ Implementation of a hash function for integers.
+ </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="type">std::size_t</span> hash_value(<span class="bold"><strong>int</strong></span> val);
+<span class="type">std::size_t</span> hash_value(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> val);
+<span class="type">std::size_t</span> hash_value(<span class="bold"><strong>long</strong></span> val);
+<span class="type">std::size_t</span> hash_value(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span> val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220394"></a><h2>Description</h2>
+<p>
+ Generally shouldn't be called directly by users, instead they should use
+ <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">boost::hash_range</a></code>
+ or <code class="computeroutput"><a href="hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> which
+ call hash_value without namespace qualification so that overloads
+ for custom types are found via ADL.
+ </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Overloads for other types supplied in other headers.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">val</code></p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id802125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1045709-bb.html b/doc/html/id1045709-bb.html
new file mode 100644
index 0000000000..a772dc2069
--- /dev/null
+++ b/doc/html/id1045709-bb.html
@@ -0,0 +1,97 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class iso_format_base&lt;wchar_t&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941603" title="Header &lt;boost/date_time/iso_format.hpp&gt;">
+<link rel="prev" href="iso_format_base.html" title="Class template iso_format_base">
+<link rel="next" href="iso_format.html" title="Class template iso_format">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_format_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="iso_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1045709-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class iso_format_base&lt;wchar_t&gt;</span></h2>
+<p>boost::date_time::iso_format_base&lt;wchar_t&gt; &#8212; Class to provide common iso formatting spec. </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"><strong>class</strong></span> iso_format_base&lt;<span class="bold"><strong>wchar_t</strong></span>&gt; {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="id1045709-bb.html#id938216-bb">public static functions</a></em></span>
+  <span class="type">month_format_spec</span> <a href="id1045709-bb.html#id938221-bb">month_format</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id1045709-bb.html#id1034559-bb">not_a_date</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id1045709-bb.html#id1038452-bb">pos_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id1045709-bb.html#id856917-bb">neg_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id1105741-bb">year_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id1105758-bb">month_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id1110172-bb">day_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id1110189-bb">hour_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id975278-bb">minute_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id873363-bb">second_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id873380-bb">period_start_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id934829-bb">time_start_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id934847-bb">week_start_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id934865-bb">period_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id801705-bb">time_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id801722-bb">fractional_time_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1045709-bb.html#id898772-bb">is_component_sep</a>(<span class="bold"><strong>wchar_t</strong></span>) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1045709-bb.html#id1070760-bb">is_fractional_time_sep</a>(<span class="bold"><strong>wchar_t</strong></span>) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id1045709-bb.html#id792624-bb">is_timezone_sep</a>(<span class="bold"><strong>wchar_t</strong></span>) ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id1045709-bb.html#id861139-bb">element_sep_char</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1107304"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1107308"></a><h3>
+<a name="id938216-bb"></a><code class="computeroutput">iso_format_base</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">month_format_spec</span> <a name="id938221-bb"></a>month_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id1034559-bb"></a>not_a_date() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id1038452-bb"></a>pos_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id856917-bb"></a>neg_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1105741-bb"></a>year_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1105758-bb"></a>month_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1110172-bb"></a>day_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1110189-bb"></a>hour_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id975278-bb"></a>minute_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id873363-bb"></a>second_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id873380-bb"></a>period_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id934829-bb"></a>time_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id934847-bb"></a>week_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id934865-bb"></a>period_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id801705-bb"></a>time_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id801722-bb"></a>fractional_time_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id898772-bb"></a>is_component_sep(<span class="bold"><strong>wchar_t</strong></span> sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1070760-bb"></a>is_fractional_time_sep(<span class="bold"><strong>wchar_t</strong></span> sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id792624-bb"></a>is_timezone_sep(<span class="bold"><strong>wchar_t</strong></span> sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id861139-bb"></a>element_sep_char() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_format_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="iso_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1045724.html b/doc/html/id1045724.html
new file mode 100644
index 0000000000..a57154dd63
--- /dev/null
+++ b/doc/html/id1045724.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function parse_environment</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="id1010247.html" title="Function parse_environment">
+<link rel="next" href="id683292.html" title="Class positional_options_description">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1010247.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id683292.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1045724"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function parse_environment</span></h2>
+<p>boost::program_options::parse_environment &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+parse_environment(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; , <span class="bold"><strong>const</strong></span> std::string &amp; prefix);
+<span class="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+parse_environment(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; , <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * prefix);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255934"></a><h2>Description</h2>
+<p>Parse environment.</p>
+<p>Takes all environment variables which start with 'prefix'. The option name is obtained from variable name by removing the prefix and converting the remaining string into lower case. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1010247.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id683292.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1067334.html b/doc/html/id1067334.html
new file mode 100644
index 0000000000..398ee2abbe
--- /dev/null
+++ b/doc/html/id1067334.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1067315" title="Header &lt;boost/functional/hash/list.hpp&gt;">
+<link rel="prev" href="id1000285.html" title="Function hash_value">
+<link rel="next" href="id1068792.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1000285.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1067315"><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="id1068792.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1067334"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::list&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1221391"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">hash_range</a>(val.begin(), val.end());</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(T)</code> throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1000285.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1067315"><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="id1068792.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1068792.html b/doc/html/id1068792.html
new file mode 100644
index 0000000000..f16d8ef9f8
--- /dev/null
+++ b/doc/html/id1068792.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1068774" title="Header &lt;boost/functional/hash/deque.hpp&gt;">
+<link rel="prev" href="id1067334.html" title="Function hash_value">
+<link rel="next" href="id898032.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1067334.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1068774"><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="id898032.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1068792"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::deque&lt;T, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1221555"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">hash_range</a>(val.begin(), val.end());</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(T)</code> throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1067334.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1068774"><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="id898032.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1070986.html b/doc/html/id1070986.html
new file mode 100644
index 0000000000..a2df322335
--- /dev/null
+++ b/doc/html/id1070986.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="id1001098.html" title="Function hash_value">
+<link rel="next" href="id897675.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1001098.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id897675.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1070986"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212;
+ Implementation of a hash function for built in arrays.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>unsigned</strong></span> N&gt; <span class="type">std::size_t</span> hash_value(T (&amp;val)[N] );
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>unsigned</strong></span> N&gt; <span class="type">std::size_t</span> hash_value(<span class="bold"><strong>const</strong></span> T (&amp;val)[N] );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220745"></a><h2>Description</h2>
+<p>
+ Generally shouldn't be called directly by users, instead they should use
+ <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">boost::hash_range</a></code>
+ or <code class="computeroutput"><a href="hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> which
+ call hash_value without namespace qualification so that overloads
+ for custom types are found via ADL.
+ </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Overloads for other types supplied in other headers.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">hash_range(val, val+N)</code></p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1001098.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id897675.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1075450.html b/doc/html/id1075450.html
new file mode 100644
index 0000000000..c55cef27d7
--- /dev/null
+++ b/doc/html/id1075450.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template dynamic_local_time_adjustor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045289" title="Header &lt;boost/date_time/local_time_adjustor.hpp&gt;">
+<link rel="prev" href="utc_adjustment.html" title="Class template utc_adjustment">
+<link rel="next" href="static_local_time_adjustor.html" title="Class template static_local_time_adjustor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="utc_adjustment.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="static_local_time_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1075450"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template dynamic_local_time_adjustor</span></h2>
+<p>boost::date_time::dynamic_local_time_adjustor &#8212; Allow sliding utc adjustment with fixed dst rules. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> dst_rules&gt;
+<span class="bold"><strong>class</strong></span> dynamic_local_time_adjustor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type          date_type;         
+
+  <span class="emphasis"><em>// <a href="id1075450.html#id1075450construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id1075450.html#id837934-bb">dynamic_local_time_adjustor</a>(time_duration_type);
+
+  <span class="emphasis"><em>// <a href="id1075450.html#id823449-bb">public member functions</a></em></span>
+  <span class="type">time_duration_type</span> <a href="id1075450.html#id963809-bb">utc_offset</a>(<span class="bold"><strong>bool</strong></span>) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1108493"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1108496"></a><h3>
+<a name="id1075450construct-copy-destruct"></a><code class="computeroutput">dynamic_local_time_adjustor</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id837934-bb"></a>dynamic_local_time_adjustor(time_duration_type utc_offset);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1108531"></a><h3>
+<a name="id823449-bb"></a><code class="computeroutput">dynamic_local_time_adjustor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id963809-bb"></a>utc_offset(<span class="bold"><strong>bool</strong></span> is_dst) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="utc_adjustment.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="static_local_time_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1076157.html b/doc/html/id1076157.html
new file mode 100644
index 0000000000..43bdd41fcb
--- /dev/null
+++ b/doc/html/id1076157.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id964834.html" title="Function operator+=">
+<link rel="next" href="id1112796.html" title="Function operator-=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id964834.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1112796.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1076157"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-</span></h2>
+<p>boost::local_time::operator- &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180411"></a><h2>Description</h2>
+<p>Subtracts a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id964834.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1112796.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1076705.html b/doc/html/id1076705.html
new file mode 100644
index 0000000000..6c7b722e1a
--- /dev/null
+++ b/doc/html/id1076705.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&amp;&amp;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_from_range.html" title="Function template is_from_range">
+<link rel="next" href="id1217789.html" title="Function template operator||">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_from_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id1217789.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1076705"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&amp;&amp;</span></h2>
+<p>boost::algorithm::operator&amp;&amp; &#8212; predicate 'and' composition predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Pred1T, <span class="bold"><strong>typename</strong></span> Pred2T&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(<span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred1T &gt; &amp; Pred1,
+                         <span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred2T &gt; &amp; Pred2);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314158"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">class_and</code> predicate. This predicate can be used to logically combine two classification predicates. <code class="computeroutput">class_and</code> holds, if both predicates return true.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Pred1</span></dt>
+<dd><p>The first predicate </p></dd>
+<dt><span class="term">Pred2</span></dt>
+<dd><p>The second predicate </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">class_and</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_from_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id1217789.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1081555.html b/doc/html/id1081555.html
new file mode 100644
index 0000000000..677d20ca67
--- /dev/null
+++ b/doc/html/id1081555.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator&amp;&amp;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="id866049.html" title="Function operator!">
+<link rel="next" href="id791859.html" title="Function operator||">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id866049.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id791859.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1081555"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator&amp;&amp;</span></h2>
+<p>boost::logic::operator&amp;&amp; &#8212; Computes the logical conjuction of two tribools. </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="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <span class="bold"><strong>bool</strong></span> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(<span class="bold"><strong>bool</strong></span> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(indeterminate_keyword_t , <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>&amp;&amp;(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, indeterminate_keyword_t );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1570136"></a><h2>Description</h2>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the result of logically ANDing the two tribool values, according to the following table: <div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong><code class="computeroutput">&amp;&amp;</code></strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">false</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+</tbody>
+</table></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id866049.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id791859.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1104430.html b/doc/html/id1104430.html
new file mode 100644
index 0000000000..f7f2937750
--- /dev/null
+++ b/doc/html/id1104430.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class options_description_easy_init</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id835103" title="Header &lt;boost/program_options/options_description.hpp&gt;">
+<link rel="prev" href="options_description.html" title="Class options_description">
+<link rel="next" href="basic_command_line_parser.html" title="Class template basic_command_line_parser">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="options_description.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="basic_command_line_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1104430"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class options_description_easy_init</span></h2>
+<p>boost::program_options::options_description_easy_init &#8212; </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"><strong>class</strong></span> options_description_easy_init {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id1104430.html#id1104430construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id1104430.html#id698986-bb">options_description_easy_init</a>(<a href="options_description.html" title="Class options_description">options_description</a> *);
+
+  <span class="emphasis"><em>// <a href="id1104430.html#id791170-bb">public member functions</a></em></span>
+  <span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span> <a href="id1104430.html#id978370-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *) ;
+  <span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span>
+  <a href="id1104430.html#id731626-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> *) ;
+  <span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span>
+  <a href="id1104430.html#id756242-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> *, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1254126"></a><h2>Description</h2>
+<p>Class which provides convenient creation syntax to option_description. </p>
+<div class="refsect2" lang="en">
+<a name="id1254133"></a><h3>
+<a name="id1104430construct-copy-destruct"></a><code class="computeroutput">options_description_easy_init</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id698986-bb"></a>options_description_easy_init(<a href="options_description.html" title="Class options_description">options_description</a> * owner);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1254175"></a><h3>
+<a name="id791170-bb"></a><code class="computeroutput">options_description_easy_init</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span>
+<a name="id978370-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * description) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span>
+<a name="id731626-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> * s) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a> &amp;</span>
+<a name="id756242-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> * s,
+           <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * description) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="options_description.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="basic_command_line_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1108211.html b/doc/html/id1108211.html
new file mode 100644
index 0000000000..ddc0c5b7f7
--- /dev/null
+++ b/doc/html/id1108211.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function store</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="variables_map.html" title="Class variables_map">
+<link rel="next" href="id837802.html" title="Function store">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variables_map.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id837802.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1108211"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function store</span></h2>
+<p>boost::program_options::store &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span>
+store(<span class="bold"><strong>const</strong></span> <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>char</strong></span> &gt; &amp; options, <a href="variables_map.html" title="Class variables_map">variables_map</a> &amp; m,
+      <span class="bold"><strong>bool</strong></span> utf8 = false);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1278495"></a><h2>Description</h2>
+<p>Stores in 'm' all options that are defined in 'options'. If 'm' already has a non-defaulted value of an option, that value is not changed, even if 'options' specify some value. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variables_map.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id837802.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1109157.html b/doc/html/id1109157.html
new file mode 100644
index 0000000000..46c3ee5771
--- /dev/null
+++ b/doc/html/id1109157.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template regex_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id658329" title="Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;">
+<link rel="prev" href="split_regex.html" title="Function template split_regex">
+<link rel="next" href="id869818.html" title="Function template regex_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id658329"><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="id869818.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1109157"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template regex_finder</span></h2>
+<p>boost::algorithm::regex_finder &#8212; "Regex" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> regex_finder(<span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                           match_flag_type MatchFlags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1348168"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">regex_finder</code> . Finder uses the regex engine to search for a match. Result is given in <code class="computeroutput">regex_search_result</code> . This is an extension of the iterator_range. In addition it containes match results from the <code class="computeroutput">regex_search</code> algorithm.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">MatchFlags</span></dt>
+<dd><p>Regex search options </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">regex_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id658329"><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="id869818.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1111919.html b/doc/html/id1111919.html
new file mode 100644
index 0000000000..2c6eb84884
--- /dev/null
+++ b/doc/html/id1111919.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="from_ftime.html" title="Function template from_ftime">
+<link rel="next" href="id660313.html" title="Function operator+=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="from_ftime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id660313.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1111919"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+</span></h2>
+<p>boost::posix_time::operator+ &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> <a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175064"></a><h2>Description</h2>
+<p>Adds a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="from_ftime.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id660313.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1112796.html b/doc/html/id1112796.html
new file mode 100644
index 0000000000..26051379ec
--- /dev/null
+++ b/doc/html/id1112796.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id1076157.html" title="Function operator-">
+<link rel="next" href="partial_date_rule_spec.html" title="Struct partial_date_rule_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1076157.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="partial_date_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1112796"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-=</span></h2>
+<p>boost::local_time::operator-= &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>-=(local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180457"></a><h2>Description</h2>
+<p>Subtracts a years object from a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1076157.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="partial_date_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1140631.html b/doc/html/id1140631.html
new file mode 100644
index 0000000000..c4c0ebe22d
--- /dev/null
+++ b/doc/html/id1140631.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template value_semantic_codecvt_helper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="value_semantic.html" title="Class value_semantic">
+<link rel="next" href="id865547-bb.html" title="Class value_semantic_codecvt_helper&lt;char&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="value_semantic.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id865547-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1140631"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template value_semantic_codecvt_helper</span></h2>
+<p>boost::program_options::value_semantic_codecvt_helper &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> value_semantic_codecvt_helper {
+<span class="bold"><strong>public</strong></span>:
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276114"></a><h2>Description</h2>
+<p>Helper class which perform necessary character conversions in the 'parse' method and forwards the data further. </p>
+<div class="refsect2" lang="en">
+<a name="id1276121"></a><h3>Specializations</h3>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="id865547-bb.html" title="Class value_semantic_codecvt_helper&lt;char&gt;">Class value_semantic_codecvt_helper&lt;char&gt;</a></p></li>
+<li><p><a href="id1142955-bb.html" title="Class value_semantic_codecvt_helper&lt;wchar_t&gt;">Class value_semantic_codecvt_helper&lt;wchar_t&gt;</a></p></li>
+</ul></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="value_semantic.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id865547-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1142955-bb.html b/doc/html/id1142955-bb.html
new file mode 100644
index 0000000000..49564d478f
--- /dev/null
+++ b/doc/html/id1142955-bb.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class value_semantic_codecvt_helper&lt;wchar_t&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="id865547-bb.html" title="Class value_semantic_codecvt_helper&lt;char&gt;">
+<link rel="next" href="value.html" title="Function value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id865547-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1142955-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class value_semantic_codecvt_helper&lt;wchar_t&gt;</span></h2>
+<p>boost::program_options::value_semantic_codecvt_helper&lt;wchar_t&gt; &#8212; </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"><strong>class</strong></span> value_semantic_codecvt_helper&lt;<span class="bold"><strong>wchar_t</strong></span>&gt;
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::value_semantic
+{
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="id1142955-bb.html#id1142980-bb">protected member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="id1142955-bb.html#id1142985-bb">xparse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::wstring &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="id1142955-bb.html#id1109361-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="id1142955-bb.html#id1109365-bb">parse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276528"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1276531"></a><h3>
+<a name="id1142980-bb"></a><code class="computeroutput">value_semantic_codecvt_helper</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+<a name="id1142985-bb"></a>xparse(boost::any &amp; value_store,
+       <span class="bold"><strong>const</strong></span> std::vector&lt; std::wstring &gt; &amp; new_tokens) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1276588"></a><h3>
+<a name="id1109361-bb"></a><code class="computeroutput">value_semantic_codecvt_helper</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1109365-bb"></a>parse(boost::any &amp; value_store,
+           <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; new_tokens, <span class="bold"><strong>bool</strong></span> utf8) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id865547-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1149596.html b/doc/html/id1149596.html
new file mode 100644
index 0000000000..05692ff0c8
--- /dev/null
+++ b/doc/html/id1149596.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type read_write_scheduling_policy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id693680" title="Header &lt;boost/thread/read_write_mutex.hpp&gt;">
+<link rel="prev" href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">
+<link rel="next" href="read_write_mutex.html" title="Class read_write_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_timed_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1149596"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type read_write_scheduling_policy</span></h2>
+<p>boost::read_write_scheduling_policy::read_write_scheduling_policy &#8212; <p>Specifies the
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ to use when a set of threads try to obtain different types of
+ locks simultaneously.</p></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"><strong>enum</strong></span> read_write_scheduling_policy { writer_priority, reader_priority,
+                                    alternating_many_reads,
+                                    alternating_single_read };</pre></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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_timed_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1151195.html b/doc/html/id1151195.html
new file mode 100644
index 0000000000..b255785126
--- /dev/null
+++ b/doc/html/id1151195.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template make_recursive_variant_over</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1362374" title="Header &lt;boost/variant/recursive_variant.hpp&gt;">
+<link rel="prev" href="make_recursive_variant.html" title="Class template make_recursive_variant">
+<link rel="next" href="recursive_wrapper.html" title="Class template recursive_wrapper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_recursive_variant.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1362374"><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="recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1151195"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template make_recursive_variant_over</span></h2>
+<p>boost::make_recursive_variant_over &#8212; <p>Exposes a recursive <code class="computeroutput">variant</code> whose bounded types
+ are the elements of the given type sequence.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sequence&gt;
+<span class="bold"><strong>class</strong></span> make_recursive_variant_over {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> variant&lt; <span class="emphasis"><em>unspecified</em></span> &gt; type;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1666722"></a><h2>Description</h2>
+<p><code class="computeroutput">type</code> has behavior equivalent in every respect to
+ <code class="computeroutput"><a href="make_recursive_variant.html" title="Class template make_recursive_variant">make_recursive_variant</a>&lt; Sequence[0], Sequence[1], ... &gt;::type</code>
+ (where <code class="computeroutput">Sequence[<span class="emphasis"><em>i</em></span>]</code> denotes the
+ <span class="emphasis"><em>i</em></span>-th element of <code class="computeroutput">Sequence</code>), except
+ that no upper limit is imposed on the number of types.</p>
+<p><span class="bold"><strong>Notes</strong></span>:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">Sequence</code> must meet the requirements of
+ <a href="../../libs/mpl/index.html" target="_top">MPL</a>'s <span class="emphasis"><em>Sequence</em></span>
+ concept.</li>
+<li>Due to standard conformance problems in several compilers,
+ <code class="computeroutput">make_recursive_variant_over</code> may not be supported on
+ your compiler. See
+ <code class="computeroutput"><a href="id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</a></code>
+ for more information.</li>
+</ul></div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_recursive_variant.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1362374"><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="recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1171494.html b/doc/html/id1171494.html
new file mode 100644
index 0000000000..66f3af11e2
--- /dev/null
+++ b/doc/html/id1171494.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template regex_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="id685080.html" title="Function template regex_finder">
+<link rel="next" href="find_iterator.html" title="Class template find_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id685080.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1171494"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template regex_formatter</span></h2>
+<p>boost::algorithm::regex_formatter &#8212; Regex formatter. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT, <span class="bold"><strong>typename</strong></span> AllocT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> regex_formatter(<span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp; Format,
+                              match_flag_type Flags = format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322791"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">regex_formatter</code> . Regex formatter uses the regex engine to format a match found by the <code class="computeroutput">regex_finder</code> . This formatted it designed to closely cooperate with <code class="computeroutput">regex_finder</code> .</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Format flags </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">regex_formatter</code> functor </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id685080.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="find_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1178955.html b/doc/html/id1178955.html
new file mode 100644
index 0000000000..1f035789c6
--- /dev/null
+++ b/doc/html/id1178955.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type token_compress_mode_type</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1178575" title="Header &lt;boost/algorithm/string/constants.hpp&gt;">
+<link rel="prev" href="FormatterConcept.html" title="Struct template FormatterConcept">
+<link rel="next" href="erase_range_copy.html" title="Function erase_range_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="FormatterConcept.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1178575"><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="erase_range_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1178955"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type token_compress_mode_type</span></h2>
+<p>boost::algorithm::token_compress_mode_type &#8212; Token compression mode. </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"><strong>enum</strong></span> token_compress_mode_type { token_compress_on, token_compress_off };</pre></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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="FormatterConcept.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1178575"><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="erase_range_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1214336.html b/doc/html/id1214336.html
new file mode 100644
index 0000000000..362c4861ee
--- /dev/null
+++ b/doc/html/id1214336.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1258086" title="Header &lt;boost/variant/variant.hpp&gt;">
+<link rel="prev" href="id928296.html" title="Function template swap">
+<link rel="next" href="make_variant_over.html" title="Class template make_variant_over">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id928296.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="make_variant_over.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1214336"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::operator&lt;&lt; &#8212; Provides streaming output for <code class="computeroutput">variant</code> types.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ElemType, <span class="bold"><strong>typename</strong></span> Traits, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ...,
+         <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type">std::basic_ostream&lt;ElemType,Traits&gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt;ElemType,Traits&gt; &amp; out,
+             <span class="bold"><strong>const</strong></span> <a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp; rhs);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1666028"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ Every bounded type of the <code class="computeroutput">variant</code> must
+ fulfill the requirements of the
+ <a href="variant/reference.html#variant.concepts.output-streamable" title="OutputStreamable"><span class="emphasis"><em>OutputStreamable</em></span></a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Calls <code class="computeroutput">out &lt;&lt; x</code>, where <code class="computeroutput">x</code> is
+ the content of <code class="computeroutput">rhs</code>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id928296.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="make_variant_over.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1217789.html b/doc/html/id1217789.html
new file mode 100644
index 0000000000..d95051fad7
--- /dev/null
+++ b/doc/html/id1217789.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator||</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="id1076705.html" title="Function template operator&amp;&amp;">
+<link rel="next" href="id719223.html" title="Function template operator!">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1076705.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id719223.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1217789"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator||</span></h2>
+<p>boost::algorithm::operator|| &#8212; predicate 'or' composition predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Pred1T, <span class="bold"><strong>typename</strong></span> Pred2T&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <span class="bold"><strong>operator</strong></span>||(<span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred1T &gt; &amp; Pred1,
+                         <span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred2T &gt; &amp; Pred2);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314279"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">class_or</code> predicate. This predicate can be used to logically combine two classification predicates. <code class="computeroutput">class_or</code> holds, if one of the predicates return true.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Pred1</span></dt>
+<dd><p>The first predicate </p></dd>
+<dt><span class="term">Pred2</span></dt>
+<dd><p>The second predicate </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">class_or</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1076705.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id719223.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1222024.html b/doc/html/id1222024.html
new file mode 100644
index 0000000000..07e6df0291
--- /dev/null
+++ b/doc/html/id1222024.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="id691834.html" title="Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS">
+<link rel="next" href="id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id691834.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id1351704.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1222024"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT</span></h2>
+<p>BOOST_VARIANT_NO_REFERENCE_SUPPORT &#8212; <p>Indicates <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> does not
+ support references as bounded types.</p></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">BOOST_VARIANT_NO_REFERENCE_SUPPORT</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1663001"></a><h2>Description</h2>
+<p>Defined only if <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> does
+ not support references as bounded types.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id691834.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id1351704.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1222476.html b/doc/html/id1222476.html
new file mode 100644
index 0000000000..87c5aedb97
--- /dev/null
+++ b/doc/html/id1222476.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator!=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="id935001.html" title="Function operator==">
+<link rel="next" href="BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id935001.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="BOOST_TRIBOOL_THIRD_STATE.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1222476"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator!=</span></h2>
+<p>boost::logic::operator!= &#8212; Compare tribools for inequality. </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="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!=(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!=(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <span class="bold"><strong>bool</strong></span> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>bool</strong></span> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!=(indeterminate_keyword_t , <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!=(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, indeterminate_keyword_t );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1571076"></a><h2>Description</h2>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the result of comparing two tribool values for inequality, according to the following table: <div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong><code class="computeroutput">!=</code></strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+</tbody>
+</table></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id935001.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="BOOST_TRIBOOL_THIRD_STATE.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1244293.html b/doc/html/id1244293.html
new file mode 100644
index 0000000000..0f2ff13ddf
--- /dev/null
+++ b/doc/html/id1244293.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template get_default_indeterminate_name</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
+<link rel="prev" href="indeterminate_name.html" title="Class template indeterminate_name">
+<link rel="next" href="id1245151.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indeterminate_name.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1245151.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1244293"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template get_default_indeterminate_name</span></h2>
+<p>boost::logic::get_default_indeterminate_name &#8212; Returns a string containing the default name for the indeterminate value of a tribool with the given character type T. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">std::basic_string&lt; T &gt;</span> get_default_indeterminate_name();</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1571875"></a><h2>Description</h2>
+<p>This routine is used by the input and output streaming operators for tribool when there is no locale support or the stream's locale does not contain the indeterminate_name facet. </p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indeterminate_name.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1245151.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1245151.html b/doc/html/id1245151.html
new file mode 100644
index 0000000000..a85926d647
--- /dev/null
+++ b/doc/html/id1245151.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
+<link rel="prev" href="id1244293.html" title="Function template get_default_indeterminate_name">
+<link rel="next" href="id1286986.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1244293.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1286986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1245151"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::logic::operator&lt;&lt; &#8212; Writes the value of a tribool to a stream. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+  <span class="type">std::basic_ostream&lt; CharT, Traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, Traits &gt; &amp; out, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1571944"></a><h2>Description</h2>
+<p>When the value of <code class="computeroutput">x</code> is either <code class="computeroutput">true</code> or <code class="computeroutput">false</code> , this routine is semantically equivalent to: </p>
+<pre class="programlisting"> out &lt;&lt; static_cast&lt;bool&gt;(x);
+</pre>
+<p>When <code class="computeroutput">x</code> has an indeterminate value, it outputs either the integer value 2 (if <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) == 0</code> ) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">out</code></p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1244293.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1286986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1286986.html b/doc/html/id1286986.html
new file mode 100644
index 0000000000..394559d7c2
--- /dev/null
+++ b/doc/html/id1286986.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
+<link rel="prev" href="id1245151.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="id1287075.html" title="Function template operator&gt;&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1245151.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1287075.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1286986"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::logic::operator&lt;&lt; &#8212; Writes the indeterminate tribool value to a stream. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+  <span class="type">std::basic_ostream&lt; CharT, Traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; CharT, Traits &gt; &amp; out, <span class="emphasis"><em>unspecified</em></span> );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1572066"></a><h2>Description</h2>
+<p>This routine outputs either the integer value 2 (if <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) == 0</code> ) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">out</code></p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1245151.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1287075.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1287075.html b/doc/html/id1287075.html
new file mode 100644
index 0000000000..c71e10c6f2
--- /dev/null
+++ b/doc/html/id1287075.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&gt;&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
+<link rel="prev" href="id1286986.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="tribool/tests.html" title="Testsuite">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1286986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="tribool/tests.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1287075"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&gt;&gt;</span></h2>
+<p>boost::logic::operator&gt;&gt; &#8212; Reads a tribool value from a stream. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+  <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; in, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> &amp; x);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1572159"></a><h2>Description</h2>
+<p>When <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) == 0</code> , this function reads a <code class="computeroutput">long</code> value from the input stream <code class="computeroutput">in</code> and converts that value to a tribool. If that value is 0, <code class="computeroutput">x</code> becomes <code class="computeroutput">false</code> ; if it is 1, <code class="computeroutput">x</code> becomes <code class="computeroutput">true</code> ; if it is 2, <code class="computeroutput">becomes</code><code class="computeroutput">indetermine</code> ; otherwise, the operation fails (and the fail bit is set on the input stream <code class="computeroutput">in</code> ).</p>
+<p>When <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) != 0</code> , this function first determines the names of the false, true, and indeterminate values. The false and true names are extracted from the <code class="computeroutput">std::numpunct</code> facet of the input stream's locale (if the C++ standard library implementation supports locales), or from the <code class="computeroutput">default_false_name</code> and <code class="computeroutput">default_true_name</code> functions (if there is no locale support). The indeterminate name is extracted from the appropriate <code class="computeroutput">indeterminate_name</code> facet (if it is available in the input stream's locale), or from the <code class="computeroutput">get_default_indeterminate_name</code> function (if the C++ standard library implementation does not support locales, or the <code class="computeroutput">indeterminate_name</code> facet is not specified for this locale object). The input is then matched to each of these names, and the tribool <code class="computeroutput">x</code> is assigned the value corresponding to the longest name that matched. If no name is matched or all names are empty, the operation fails (and the fail bit is set on the input stream <code class="computeroutput">in</code> ).</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">in</code></p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1286986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="tribool/tests.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id1351704.html b/doc/html/id1351704.html
new file mode 100644
index 0000000000..f739f30d70
--- /dev/null
+++ b/doc/html/id1351704.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="id1222024.html" title="Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT">
+<link rel="next" href="id696758.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1222024.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id696758.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id1351704"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</span></h2>
+<p>BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT &#8212; <p>Indicates absence of support for specifying the bounded types
+ of a <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code> by the elements of a
+ type sequence.</p></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">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1663054"></a><h2>Description</h2>
+<p>Defined only if
+ <code class="computeroutput"><a href="make_variant_over.html" title="Class template make_variant_over">make_variant_over</a></code> and
+ <code class="computeroutput"><a href="id1151195.html" title="Class template make_recursive_variant_over">make_recursive_variant_over</a></code>
+ are not supported for some reason on the target compiler.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1222024.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id696758.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id660313.html b/doc/html/id660313.html
new file mode 100644
index 0000000000..8bd91aa25a
--- /dev/null
+++ b/doc/html/id660313.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id1111919.html" title="Function operator+">
+<link rel="next" href="id1000125.html" title="Function operator-">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1111919.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id1000125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id660313"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+=</span></h2>
+<p>boost::posix_time::operator+= &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>+=(<a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175120"></a><h2>Description</h2>
+<p>Adds a months object to a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1111919.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id1000125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id681933.html b/doc/html/id681933.html
new file mode 100644
index 0000000000..dc8b95cf32
--- /dev/null
+++ b/doc/html/id681933.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id795566.html" title="Function operator-">
+<link rel="next" href="id967615.html" title="Function operator+">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id795566.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id967615.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id681933"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-=</span></h2>
+<p>boost::local_time::operator-= &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>-=(local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180261"></a><h2>Description</h2>
+<p>Subtracts a months object from a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id795566.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id967615.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id683292.html b/doc/html/id683292.html
new file mode 100644
index 0000000000..93404d5662
--- /dev/null
+++ b/doc/html/id683292.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class positional_options_description</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id1010451" title="Header &lt;boost/program_options/positional_options.hpp&gt;">
+<link rel="prev" href="id1045724.html" title="Function parse_environment">
+<link rel="next" href="typed_value.html" title="Class template typed_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1045724.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id1010451"><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="typed_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id683292"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class positional_options_description</span></h2>
+<p>boost::program_options::positional_options_description &#8212; </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"><strong>class</strong></span> positional_options_description {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id683292.html#id683292construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id683292.html#id1141110-bb">positional_options_description</a>();
+
+  <span class="emphasis"><em>// <a href="id683292.html#id1141395-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="id683292.html#id683241-bb">add</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>int</strong></span>) ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a href="id683292.html#id733921-bb">max_total_count</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a href="id683292.html#id896719-bb">name_for_position</a>(<span class="bold"><strong>unsigned</strong></span>) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1256133"></a><h2>Description</h2>
+<p>Describes positional options.</p>
+<p>The class allows to guess option names for positional options, which are specified on the command line and are identified by the position. The class uses the information provided by the user to associate a name with every positional option, or tell that no name is known.</p>
+<p>The primary assumption is that only the relative order of the positional options themselves matters, and that any interleaving ordinary options don't affect interpretation of positional options.</p>
+<p>The user initializes the class by specifying that first N positional options should be given the name X1, following M options should be given the name X2 and so on. </p>
+<div class="refsect2" lang="en">
+<a name="id1256156"></a><h3>
+<a name="id683292construct-copy-destruct"></a><code class="computeroutput">positional_options_description</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1141110-bb"></a>positional_options_description();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1256190"></a><h3>
+<a name="id1141395-bb"></a><code class="computeroutput">positional_options_description</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id683241-bb"></a>add(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>int</strong></span> max_count) ;</pre>
+<p>Species that up to 'max_count' next positional options should be given the 'name'. The value of '-1' means 'unlimited'. No calls to 'add' can be made after call with 'max_value' equal to '-1'. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a name="id733921-bb"></a>max_total_count() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns the maximum number of positional options that can be present. Can return numeric_limits&lt;unsigned&gt;::max() to indicate unlimited number. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a name="id896719-bb"></a>name_for_position(<span class="bold"><strong>unsigned</strong></span> position) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns the name that should be associated with positional options at 'position'. Precondition: position &lt; max_total_count() </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1045724.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id1010451"><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="typed_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id685080.html b/doc/html/id685080.html
new file mode 100644
index 0000000000..771d574fb3
--- /dev/null
+++ b/doc/html/id685080.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template regex_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">
+<link rel="prev" href="find_format_all.html" title="Function template find_format_all">
+<link rel="next" href="id1171494.html" title="Function template regex_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="id1171494.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id685080"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template regex_finder</span></h2>
+<p>boost::algorithm::regex_finder &#8212; "Regex" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> regex_finder(<span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                           match_flag_type MatchFlags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1322674"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">regex_finder</code> . Finder uses the regex engine to search for a match. Result is given in <code class="computeroutput">regex_search_result</code> . This is an extension of the iterator_range. In addition it containes match results from the <code class="computeroutput">regex_search</code> algorithm.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">MatchFlags</span></dt>
+<dd><p>Regex search options </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">regex_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_format_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1188068"><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="id1171494.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id691834.html b/doc/html/id691834.html
new file mode 100644
index 0000000000..f17b70c2c8
--- /dev/null
+++ b/doc/html/id691834.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">
+<link rel="next" href="id1222024.html" title="Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_VARIANT_ENUM_PARAMS.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id1222024.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id691834"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS</span></h2>
+<p>BOOST_VARIANT_ENUM_SHIFTED_PARAMS &#8212; <p>Enumerate all but the first parameter for use with
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a></code>.</p></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">BOOST_VARIANT_ENUM_SHIFTED_PARAMS(param)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1662915"></a><h2>Description</h2>
+<p>Expands to a comma-separated sequence of length
+ <code class="computeroutput"><a href="BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a> - 1</code>,
+ where each element in the sequence consists of the concatenation of
+ <span class="emphasis"><em>param</em></span> with its one-based index into the sequence.
+ That is,
+ <code class="computeroutput">param ## 1, ..., param ## BOOST_VARIANT_LIMIT_TYPES - 1</code>.</p>
+<p><span class="bold"><strong>Note</strong></span>: This macro results in the
+ same expansion as
+ <code class="computeroutput"><a href="BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></code> -- but
+ without the first term.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_VARIANT_ENUM_PARAMS.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="id1222024.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id696758.html b/doc/html/id696758.html
new file mode 100644
index 0000000000..70f9ec6704
--- /dev/null
+++ b/doc/html/id696758.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1283515" title="Header &lt;boost/variant/variant_fwd.hpp&gt;">
+<link rel="prev" href="id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">
+<link rel="next" href="boost/variant.html" title="Class template variant">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1351704.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="boost/variant.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id696758"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</span></h2>
+<p>BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT &#8212; <p>Indicates
+ <code class="computeroutput"><a href="make_recursive_variant.html" title="Class template make_recursive_variant">make_recursive_variant</a></code> operates in
+ an implementation-defined manner.</p></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">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1663120"></a><h2>Description</h2>
+<p>Defined only if
+ <code class="computeroutput"><a href="make_recursive_variant.html" title="Class template make_recursive_variant">make_recursive_variant</a></code> does not
+ operate as documented on the target compiler, but rather in an
+ implementation-defined manner.</p>
+<p><span class="bold"><strong>Implementation Note</strong></span>: If
+ <code class="computeroutput">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</code> is
+ defined for the target compiler, the current implementation uses the
+ <a href="../../libs/mpl/index.html" target="_top">MPL</a> lambda mechanism to approximate the
+ desired behavior. (In most cases, however, such compilers do not have
+ full lambda support either.)</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1351704.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1283515"><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="boost/variant.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id719223.html b/doc/html/id719223.html
new file mode 100644
index 0000000000..463b4f55b4
--- /dev/null
+++ b/doc/html/id719223.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator!</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="id1217789.html" title="Function template operator||">
+<link rel="next" href="is_equal.html" title="Struct is_equal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1217789.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_equal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id719223"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator!</span></h2>
+<p>boost::algorithm::operator! &#8212; predicate negation operator </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> PredT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <span class="bold"><strong>operator</strong></span>!(<span class="bold"><strong>const</strong></span> predicate_facade&lt; PredT &gt; &amp; Pred);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314387"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">class_not</code> predicate. This predicate represents a negation. <code class="computeroutput">class_or</code> holds if of the predicates return false.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Pred</span></dt>
+<dd><p>The predicate to be negated </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">class_not</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1217789.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_equal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id726784.html b/doc/html/id726784.html
new file mode 100644
index 0000000000..0a0db620b0
--- /dev/null
+++ b/doc/html/id726784.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template split</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1147531" title="Header &lt;boost/algorithm/string/split.hpp&gt;">
+<link rel="prev" href="ifind_all.html" title="Function template ifind_all">
+<link rel="next" href="trim_left_copy_if.html" title="Function trim_left_copy_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="trim_left_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id726784"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template split</span></h2>
+<p>boost::algorithm::split &#8212; Split algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">SequenceSequenceT &amp;</span>
+  split(SequenceSequenceT &amp; Result, RangeT &amp; Input, PredicateT Pred,
+        token_compress_mode_type eCompress = token_compress_off);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354942"></a><h2>Description</h2>
+<p>Tokenize expression. This function is equivalent to C strtok. Input sequence is split into tokens, separated by separators. Separators are given by means of the predicate.</p>
+<p>Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Pred</span></dt>
+<dd><p>A predicate to identify separators. This predicate is supposed to return true if a given element is a separator. </p></dd>
+<dt><span class="term">Result</span></dt>
+<dd><p>A container that can hold copies of references to the substrings </p></dd>
+<dt><span class="term">eCompress</span></dt>
+<dd><p>If eCompress argument is set to token_compress_on, adjacent separators are merged together. Otherwise, every two separators delimit a token. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference the result<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Prior content of the result will be overwritten.<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ifind_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="trim_left_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id766036.html b/doc/html/id766036.html
new file mode 100644
index 0000000000..65d250b335
--- /dev/null
+++ b/doc/html/id766036.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class too_few_positional_options_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="multiple_values.html" title="Class multiple_values">
+<link rel="next" href="id977493.html" title="Class too_many_positional_options_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="multiple_values.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id977493.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id766036"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class too_few_positional_options_error</span></h2>
+<p>boost::program_options::too_few_positional_options_error &#8212; </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"><strong>class</strong></span> too_few_positional_options_error
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::error
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id766036.html#id766036construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id766036.html#id653557-bb">too_few_positional_options_error</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="id766036.html#id1136903-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1251240"></a><h2>Description</h2>
+<p>Class thrown when there are too few positional options. </p>
+<div class="refsect2" lang="en">
+<a name="id1251246"></a><h3>
+<a name="id766036construct-copy-destruct"></a><code class="computeroutput">too_few_positional_options_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id653557-bb"></a>too_few_positional_options_error(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251286"></a><h3>
+<a name="id1136903-bb"></a><code class="computeroutput">too_few_positional_options_error</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="multiple_values.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id977493.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id791859.html b/doc/html/id791859.html
new file mode 100644
index 0000000000..f6216fcd0f
--- /dev/null
+++ b/doc/html/id791859.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator||</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="id1081555.html" title="Function operator&amp;&amp;">
+<link rel="next" href="id935001.html" title="Function operator==">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1081555.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id935001.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id791859"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator||</span></h2>
+<p>boost::logic::operator|| &#8212; Computes the logical disjunction of two tribools. </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="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>||(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>||(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <span class="bold"><strong>bool</strong></span> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>||(<span class="bold"><strong>bool</strong></span> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>||(indeterminate_keyword_t , <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>||(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, indeterminate_keyword_t );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1570450"></a><h2>Description</h2>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the result of logically ORing the two tribool values, according to the following table: <div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong><code class="computeroutput">||</code></strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">true</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+</tbody>
+</table></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1081555.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id935001.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id792474.html b/doc/html/id792474.html
new file mode 100644
index 0000000000..182eb2de92
--- /dev/null
+++ b/doc/html/id792474.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856825" title="Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;">
+<link rel="prev" href="id961567.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="bad_month.html" title="Struct bad_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id961567.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="bad_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id792474"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::gregorian::operator&lt;&lt; &#8212; operator&lt;&lt; for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31] </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+  <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <span class="bold"><strong>const</strong></span> date_period &amp; dp);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1152673"></a><h2>Description</h2>
+<p>Uses the date facet to determine output string as well as selection of long or short string fr dates. Default if no facet is installed is to output a 3 char english string for the day of the week. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id961567.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="bad_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id795566.html b/doc/html/id795566.html
new file mode 100644
index 0000000000..0dde32dff1
--- /dev/null
+++ b/doc/html/id795566.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id1038994.html" title="Function operator+=">
+<link rel="next" href="id681933.html" title="Function operator-=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1038994.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id681933.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id795566"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-</span></h2>
+<p>boost::local_time::operator- &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180215"></a><h2>Description</h2>
+<p>Subtracts a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1038994.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id681933.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id801451.html b/doc/html/id801451.html
new file mode 100644
index 0000000000..068cec59fa
--- /dev/null
+++ b/doc/html/id801451.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type style_t</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id658912" title="Header &lt;boost/program_options/cmdline.hpp&gt;">
+<link rel="prev" href="program_options/reference.html" title="Reference">
+<link rel="next" href="environment_iterator.html" title="Class environment_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="program_options/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id658912"><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="environment_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id801451"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type style_t</span></h2>
+<p>boost::program_options::command_line_style::style_t &#8212; </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"><strong>enum</strong></span> style_t { allow_long = 1, allow_short = allow_long &lt;&lt; 1, allow_dash_for_short = allow_short &lt;&lt; 1,
+               allow_slash_for_short = allow_dash_for_short &lt;&lt; 1, long_allow_adjacent = allow_slash_for_short &lt;&lt; 1, long_allow_next = long_allow_adjacent &lt;&lt; 1,
+               short_allow_adjacent = long_allow_next &lt;&lt; 1, short_allow_next = short_allow_adjacent &lt;&lt; 1, allow_sticky = short_allow_next &lt;&lt; 1,
+               allow_guessing = allow_sticky &lt;&lt; 1, case_insensitive = allow_guessing &lt;&lt; 1, allow_long_disguise = case_insensitive &lt;&lt; 1,
+               unix_style = (allow_short | short_allow_adjacent | short_allow_next
+ | allow_long | long_allow_adjacent | long_allow_next
+ | allow_sticky | allow_guessing
+ | allow_dash_for_short), default_style = unix_style };</pre></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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="program_options/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id658912"><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="environment_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id802125.html b/doc/html/id802125.html
new file mode 100644
index 0000000000..730e72f4eb
--- /dev/null
+++ b/doc/html/id802125.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="id1042434.html" title="Function hash_value">
+<link rel="next" href="id1001098.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1042434.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1001098.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id802125"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212;
+ Implementation of a hash function for floating point values.
+ </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="type">std::size_t</span> hash_value(<span class="bold"><strong>float</strong></span> val);
+<span class="type">std::size_t</span> hash_value(double val);
+<span class="type">std::size_t</span> hash_value(<span class="bold"><strong>long</strong></span> double val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220503"></a><h2>Description</h2>
+<p>
+ Generally shouldn't be called directly by users, instead they should use
+ <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">boost::hash_range</a></code>
+ or <code class="computeroutput"><a href="hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> which
+ call hash_value without namespace qualification so that overloads
+ for custom types are found via ADL.
+ </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Overloads for other types supplied in other headers.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+
+ An unspecified value, except that equal arguments shall yield the same
+ result
+ </p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1042434.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id1001098.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id802530.html b/doc/html/id802530.html
new file mode 100644
index 0000000000..9f5aaab159
--- /dev/null
+++ b/doc/html/id802530.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id1000125.html" title="Function operator-">
+<link rel="next" href="id934351.html" title="Function operator+">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1000125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id934351.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id802530"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-=</span></h2>
+<p>boost::posix_time::operator-= &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>-=(<a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175238"></a><h2>Description</h2>
+<p>Subtracts a months object from a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1000125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id934351.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id829552.html b/doc/html/id829552.html
new file mode 100644
index 0000000000..c086f4ff11
--- /dev/null
+++ b/doc/html/id829552.html
@@ -0,0 +1,166 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id829537" title="Header &lt;boost/date_time/time_duration.hpp&gt;">
+<link rel="prev" href="second_clock.html" title="Class template second_clock">
+<link rel="next" href="subsecond_duration.html" title="Class template subsecond_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="second_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id829537"><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="subsecond_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id829552"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_duration</span></h2>
+<p>boost::date_time::time_duration &#8212; Represents some amount of elapsed time measure to a given resolution. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> rep_type&gt;
+<span class="bold"><strong>class</strong></span> time_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T                                 duration_type;          
+  <span class="bold"><strong>typedef</strong></span> rep_type                          traits_type;            
+  <span class="bold"><strong>typedef</strong></span> rep_type::day_type                day_type;               
+  <span class="bold"><strong>typedef</strong></span> rep_type::hour_type               hour_type;              
+  <span class="bold"><strong>typedef</strong></span> rep_type::min_type                min_type;               
+  <span class="bold"><strong>typedef</strong></span> rep_type::sec_type                sec_type;               
+  <span class="bold"><strong>typedef</strong></span> rep_type::fractional_seconds_type fractional_seconds_type;
+  <span class="bold"><strong>typedef</strong></span> rep_type::tick_type               tick_type;              
+  <span class="bold"><strong>typedef</strong></span> rep_type::impl_type               impl_type;              
+
+  <span class="emphasis"><em>// <a href="id829552.html#id829552construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id829552.html#id692947-bb">time_duration</a>();
+  <a href="id829552.html#id692950-bb">time_duration</a>(hour_type, min_type, sec_type = 0,
+                fractional_seconds_type = 0);
+  <a href="id829552.html#id655848-bb">time_duration</a>(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a>&lt; T, rep_type &gt; &amp;);
+  <a href="id829552.html#id871564-bb">time_duration</a>(special_values);
+  <a href="id829552.html#id821564-bb">time_duration</a>(impl_type);
+
+  <span class="emphasis"><em>// <a href="id829552.html#id834258-bb">public member functions</a></em></span>
+  <span class="type">hour_type</span> <a href="id829552.html#id834264-bb">hours</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">min_type</span> <a href="id829552.html#id834281-bb">minutes</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">sec_type</span> <a href="id829552.html#id691217-bb">seconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">sec_type</span> <a href="id829552.html#id893837-bb">total_seconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">tick_type</span> <a href="id829552.html#id893855-bb">total_milliseconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">tick_type</span> <a href="id829552.html#id893873-bb">total_nanoseconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">tick_type</span> <a href="id829552.html#id835309-bb">total_microseconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">fractional_seconds_type</span> <a href="id829552.html#id835327-bb">fractional_seconds</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id803644-bb">invert_sign</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id803656-bb">is_negative</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id827955-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id833549-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id828567-bb"><span class="bold"><strong>operator</strong></span>-</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id872555-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id872579-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id872603-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id872626-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) ;
+  <span class="type">duration_type</span> <a href="id829552.html#id872650-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> duration_type &amp;) ;
+  <span class="type">duration_type</span> <a href="id829552.html#id800670-bb"><span class="bold"><strong>operator</strong></span>/=</a>(<span class="bold"><strong>int</strong></span>) ;
+  <span class="type">duration_type</span> <a href="id829552.html#id800698-bb"><span class="bold"><strong>operator</strong></span> *</a>(<span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="id829552.html#id891763-bb"><span class="bold"><strong>operator</strong></span> *=</a>(<span class="bold"><strong>int</strong></span>) ;
+  <span class="type">tick_type</span> <a href="id829552.html#id863240-bb">ticks</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id863253-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id863270-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id684070-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id829552.html#id870565-bb">is_not_a_date_time</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">impl_type</span> <a href="id829552.html#id692929-bb">get_rep</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="id829552.html#id821482-bb">public static functions</a></em></span>
+  <span class="type">duration_type</span> <a href="id829552.html#id821487-bb">unit</a>() ;
+  <span class="type">tick_type</span> <a href="id829552.html#id821504-bb">ticks_per_second</a>() ;
+  <span class="type">time_resolutions</span> <a href="id829552.html#id821522-bb">resolution</a>() ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="id829552.html#id821540-bb">num_fractional_digits</a>() ;
+
+  <span class="emphasis"><em>// <a href="id829552.html#id821559-bb">protected member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1136642"></a><h2>Description</h2>
+<p>This class represents a standard set of capabilities for all counted time durations. Time duration implementations should derive from this class passing their type as the first template parameter. This design allows the subclass duration types to provide custom construction policies or other custom features not provided here.</p>
+<p></p>
+<div class="refsect2" lang="en">
+<a name="id1136654"></a><h3>
+<a name="id829552construct-copy-destruct"></a><code class="computeroutput">time_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id692947-bb"></a>time_duration();</pre></li>
+<li><pre class="literallayout"><a name="id692950-bb"></a>time_duration(hour_type hours, min_type minutes, sec_type seconds = 0,
+              fractional_seconds_type frac_sec = 0);</pre></li>
+<li><pre class="literallayout"><a name="id655848-bb"></a>time_duration(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a>&lt; T, rep_type &gt; &amp; other);</pre></li>
+<li><pre class="literallayout"><a name="id871564-bb"></a>time_duration(special_values sv);</pre></li>
+<li><pre class="literallayout"><a name="id821564-bb"></a>time_duration(impl_type in);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1136756"></a><h3>
+<a name="id834258-bb"></a><code class="computeroutput">time_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">hour_type</span> <a name="id834264-bb"></a>hours() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">min_type</span> <a name="id834281-bb"></a>minutes() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">sec_type</span> <a name="id691217-bb"></a>seconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">sec_type</span> <a name="id893837-bb"></a>total_seconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id893855-bb"></a>total_milliseconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id893873-bb"></a>total_nanoseconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id835309-bb"></a>total_microseconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">fractional_seconds_type</span> <a name="id835327-bb"></a>fractional_seconds() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id803644-bb"></a>invert_sign() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id803656-bb"></a>is_negative() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id827955-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id833549-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="id829552.html" title="Class template time_duration">time_duration</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id828567-bb"></a><span class="bold"><strong>operator</strong></span>-() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id872555-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> duration_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id872579-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> duration_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id872603-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>int</strong></span> divisor) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id872626-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> duration_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id872650-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> duration_type &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id800670-bb"></a><span class="bold"><strong>operator</strong></span>/=(<span class="bold"><strong>int</strong></span> divisor) ;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id800698-bb"></a><span class="bold"><strong>operator</strong></span> *(<span class="bold"><strong>int</strong></span> rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id891763-bb"></a><span class="bold"><strong>operator</strong></span> *=(<span class="bold"><strong>int</strong></span> divisor) ;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id863240-bb"></a>ticks() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id863253-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id863270-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id684070-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id870565-bb"></a>is_not_a_date_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">impl_type</span> <a name="id692929-bb"></a>get_rep() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1137502"></a><h3>
+<a name="id821482-bb"></a><code class="computeroutput">time_duration</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id821487-bb"></a>unit() ;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id821504-bb"></a>ticks_per_second() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_resolutions</span> <a name="id821522-bb"></a>resolution() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id821540-bb"></a>num_fractional_digits() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1137596"></a><h3>
+<a name="id821559-bb"></a><code class="computeroutput">time_duration</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="second_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id829537"><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="subsecond_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id833986.html b/doc/html/id833986.html
new file mode 100644
index 0000000000..486659f3bb
--- /dev/null
+++ b/doc/html/id833986.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_PROGRAM_OPTIONS_VERSION</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id833980" title="Header &lt;boost/program_options/version.hpp&gt;">
+<link rel="prev" href="notify.html" title="Function notify">
+<link rel="next" href="ref.html" title="Chapter 8. Boost.Ref">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="notify.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id833980"><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="ref.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id833986"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_PROGRAM_OPTIONS_VERSION</span></h2>
+<p>BOOST_PROGRAM_OPTIONS_VERSION &#8212; </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">BOOST_PROGRAM_OPTIONS_VERSION</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1278658"></a><h2>Description</h2>
+<p>The version of the source interface. The value will be incremented whenever a change is made which might cause compilation errors for existing code. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="notify.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id833980"><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="ref.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id837802.html b/doc/html/id837802.html
new file mode 100644
index 0000000000..2050e6971e
--- /dev/null
+++ b/doc/html/id837802.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function store</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="id1108211.html" title="Function store">
+<link rel="next" href="notify.html" title="Function notify">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1108211.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="notify.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id837802"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function store</span></h2>
+<p>boost::program_options::store &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span>
+store(<span class="bold"><strong>const</strong></span> <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; &amp; options, <a href="variables_map.html" title="Class variables_map">variables_map</a> &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1278559"></a><h2>Description</h2>
+<p>Stores in 'm' all options that are defined in 'options'. If 'm' already has a non-defaulted value of an option, that value is not changed, even if 'options' specify some value. This is wide character variant. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1108211.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="notify.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id838605.html b/doc/html/id838605.html
new file mode 100644
index 0000000000..bfb8f19a9f
--- /dev/null
+++ b/doc/html/id838605.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_time_duration_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856862" title="Header &lt;boost/date_time/time_formatting_streams.hpp&gt;">
+<link rel="prev" href="time_input_facet.html" title="Class template time_input_facet">
+<link rel="next" href="ostream_time_formatter.html" title="Class template ostream_time_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_input_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="ostream_time_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id838605"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_time_duration_formatter</span></h2>
+<p>boost::date_time::ostream_time_duration_formatter &#8212; Put a time type into a stream using appropriate facets. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_time_duration_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt;                 ostream_type;           
+  <span class="bold"><strong>typedef</strong></span> time_duration_type::fractional_seconds_type fractional_seconds_type;
+
+  <span class="emphasis"><em>// <a href="id838605.html#id1003440-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="id838605.html#id1003445-bb">duration_put</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;, ostream_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1140411"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1140414"></a><h3>
+<a name="id1003440-bb"></a><code class="computeroutput">ostream_time_duration_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1003445-bb"></a>duration_put(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td, ostream_type &amp; os) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_input_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="ostream_time_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id858004.html b/doc/html/id858004.html
new file mode 100644
index 0000000000..22cae56c66
--- /dev/null
+++ b/doc/html/id858004.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="custom_time_zone.html" title="Class custom_time_zone">
+<link rel="next" href="id1038994.html" title="Function operator+=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="custom_time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1038994.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id858004"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+</span></h2>
+<p>boost::local_time::operator+ &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::months &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180118"></a><h2>Description</h2>
+<p>Adds a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="custom_time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1038994.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id865547-bb.html b/doc/html/id865547-bb.html
new file mode 100644
index 0000000000..7745000d58
--- /dev/null
+++ b/doc/html/id865547-bb.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class value_semantic_codecvt_helper&lt;char&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="id1140631.html" title="Class template value_semantic_codecvt_helper">
+<link rel="next" href="id1142955-bb.html" title="Class value_semantic_codecvt_helper&lt;wchar_t&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1140631.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id1142955-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id865547-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class value_semantic_codecvt_helper&lt;char&gt;</span></h2>
+<p>boost::program_options::value_semantic_codecvt_helper&lt;char&gt; &#8212; </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"><strong>class</strong></span> value_semantic_codecvt_helper&lt;<span class="bold"><strong>char</strong></span>&gt; {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="id865547-bb.html#id716862-bb">protected member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="id865547-bb.html#id716867-bb">xparse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="id865547-bb.html#id768117-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="id865547-bb.html#id768122-bb">parse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276273"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1276277"></a><h3>
+<a name="id716862-bb"></a><code class="computeroutput">value_semantic_codecvt_helper</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+<a name="id716867-bb"></a>xparse(boost::any &amp; value_store,
+       <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; new_tokens) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1276335"></a><h3>
+<a name="id768117-bb"></a><code class="computeroutput">value_semantic_codecvt_helper</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id768122-bb"></a>parse(boost::any &amp; value_store,
+           <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; new_tokens, <span class="bold"><strong>bool</strong></span> utf8) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1140631.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id1142955-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id866049.html b/doc/html/id866049.html
new file mode 100644
index 0000000000..f98d34f9c4
--- /dev/null
+++ b/doc/html/id866049.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator!</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="indeterminate.html" title="Function indeterminate">
+<link rel="next" href="id1081555.html" title="Function operator&amp;&amp;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indeterminate.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id1081555.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id866049"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator!</span></h2>
+<p>boost::logic::operator! &#8212; Computes the logical negation of a tribool. </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="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>!(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1569890"></a><h2>Description</h2>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the logical negation of the tribool, according to the table: <div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong><code class="computeroutput">!</code></strong></span></td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle">true</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle">false</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+</tbody>
+</table></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indeterminate.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id1081555.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id869148.html b/doc/html/id869148.html
new file mode 100644
index 0000000000..8dc450ca4a
--- /dev/null
+++ b/doc/html/id869148.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type xtime_clock_types</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id997727" title="Header &lt;boost/thread/xtime.hpp&gt;">
+<link rel="prev" href="thread_specific_ptr.html" title="Class thread_specific_ptr">
+<link rel="next" href="xtime.html" title="Struct xtime">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_specific_ptr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id997727"><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="xtime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id869148"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type xtime_clock_types</span></h2>
+<p>boost::xtime_clock_types &#8212; <p>Specifies the clock type to use when creating
+ an object of type <a href="xtime.html" title="Struct xtime">xtime</a>.</p></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"><strong>enum</strong></span> xtime_clock_types { TIME_UTC };</pre></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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_specific_ptr.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id997727"><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="xtime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id869818.html b/doc/html/id869818.html
new file mode 100644
index 0000000000..cdb3dfe37f
--- /dev/null
+++ b/doc/html/id869818.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template regex_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id658329" title="Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;">
+<link rel="prev" href="id1109157.html" title="Function template regex_finder">
+<link rel="next" href="replace_range_copy.html" title="Function replace_range_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1109157.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id658329"><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="replace_range_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id869818"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template regex_formatter</span></h2>
+<p>boost::algorithm::regex_formatter &#8212; Regex formatter. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT, <span class="bold"><strong>typename</strong></span> AllocT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> regex_formatter(<span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp; Format,
+                              match_flag_type Flags = format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1348286"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">regex_formatter</code> . Regex formatter uses the regex engine to format a match found by the <code class="computeroutput">regex_finder</code> . This formatted it designed to closely cooperate with <code class="computeroutput">regex_finder</code> .</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Format flags </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">regex_formatter</code> functor </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1109157.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id658329"><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="replace_range_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id873294.html b/doc/html/id873294.html
new file mode 100644
index 0000000000..4feb301ea6
--- /dev/null
+++ b/doc/html/id873294.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1034618" title="Header &lt;boost/functional/hash/map.hpp&gt;">
+<link rel="prev" href="id898032.html" title="Function hash_value">
+<link rel="next" href="hash/links.html" title=" Links">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id898032.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1034618"><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="hash/links.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id873294"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::map&lt;K, T, C, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::multimap&lt;K, T, C, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1222089"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">hash_range</a>(val.begin(), val.end());</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if
+ <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(std::pair&lt;K const, T&gt;)</code>
+ throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id898032.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1034618"><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="hash/links.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id893464-bb.html b/doc/html/id893464-bb.html
new file mode 100644
index 0000000000..4d37dab26e
--- /dev/null
+++ b/doc/html/id893464-bb.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class simple_format&lt;wchar_t&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1001696" title="Header &lt;boost/date_time/date_format_simple.hpp&gt;">
+<link rel="prev" href="simple_format.html" title="Class template simple_format">
+<link rel="next" href="month_formatter.html" title="Class template month_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="simple_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1001696"><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="month_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id893464-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class simple_format&lt;wchar_t&gt;</span></h2>
+<p>boost::date_time::simple_format&lt;wchar_t&gt; &#8212; Specialization of formmating rules for wchar_t. </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"><strong>class</strong></span> simple_format&lt;<span class="bold"><strong>wchar_t</strong></span>&gt; {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="id893464-bb.html#id1042533-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id893464-bb.html#id860617-bb">not_a_date</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id893464-bb.html#id977713-bb">pos_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a href="id893464-bb.html#id1071139-bb">neg_infinity</a>() ;
+  <span class="type">month_format_spec</span> <a href="id893464-bb.html#id934519-bb">month_format</a>() ;
+  <span class="type">ymd_order_spec</span> <a href="id893464-bb.html#id1036896-bb">date_order</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="id893464-bb.html#id970402-bb">has_date_sep_chars</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id977444-bb">year_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id900336-bb">month_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id1046820-bb">day_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id1105667-bb">hour_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id1031448-bb">minute_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a href="id893464-bb.html#id831863-bb">second_sep_char</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1068295"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1068298"></a><h3>
+<a name="id1042533-bb"></a><code class="computeroutput">simple_format</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id860617-bb"></a>not_a_date() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id977713-bb"></a>pos_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>wchar_t</strong></span> *</span> <a name="id1071139-bb"></a>neg_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_format_spec</span> <a name="id934519-bb"></a>month_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_order_spec</span> <a name="id1036896-bb"></a>date_order() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id970402-bb"></a>has_date_sep_chars() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id977444-bb"></a>year_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id900336-bb"></a>month_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1046820-bb"></a>day_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1105667-bb"></a>hour_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id1031448-bb"></a>minute_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>wchar_t</strong></span></span> <a name="id831863-bb"></a>second_sep_char() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="simple_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1001696"><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="month_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id895555.html b/doc/html/id895555.html
new file mode 100644
index 0000000000..edf4dedc0b
--- /dev/null
+++ b/doc/html/id895555.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template dst_adjustment_offsets</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id832253" title="Header &lt;boost/date_time/time_zone_base.hpp&gt;">
+<link rel="prev" href="time_zone_base.html" title="Class template time_zone_base">
+<link rel="next" href="time_zone_names_base.html" title="Class template time_zone_names_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id832253"><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="time_zone_names_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id895555"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template dst_adjustment_offsets</span></h2>
+<p>boost::date_time::dst_adjustment_offsets &#8212; Structure which holds the time offsets associated with daylight savings time. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type&gt;
+<span class="bold"><strong>class</strong></span> dst_adjustment_offsets {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id895555.html#id895555construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id895555.html#id895588-bb">dst_adjustment_offsets</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+                         <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+                         <span class="bold"><strong>const</strong></span> time_duration_type &amp;);
+
+  <span class="emphasis"><em>// <a href="id895555.html#id895583-bb">public member functions</a></em></span>
+
+  time_duration_type dst_adjust_;
+  time_duration_type dst_start_offset_;
+  time_duration_type dst_end_offset_;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1146279"></a><h2>Description</h2>
+<p></p>
+<div class="refsect2" lang="en">
+<a name="id1146283"></a><h3>
+<a name="id895555construct-copy-destruct"></a><code class="computeroutput">dst_adjustment_offsets</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id895588-bb"></a>dst_adjustment_offsets(<span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_adjust,
+                       <span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_start_offset,
+                       <span class="bold"><strong>const</strong></span> time_duration_type &amp; dst_end_offset);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1146335"></a><h3>
+<a name="id895583-bb"></a><code class="computeroutput">dst_adjustment_offsets</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_zone_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id832253"><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="time_zone_names_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id897675.html b/doc/html/id897675.html
new file mode 100644
index 0000000000..18ec20316b
--- /dev/null
+++ b/doc/html/id897675.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1082064" title="Header &lt;boost/functional/hash/hash.hpp&gt;">
+<link rel="prev" href="id1070986.html" title="Function hash_value">
+<link rel="next" href="id975607.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1070986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id975607.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id897675"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212;
+ Implementation of a hash function for <code class="computeroutput">std::basic_string</code>.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Ch, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::basic_string&lt;Ch, std::char_traits&lt;Ch&gt;, A&gt; <span class="bold"><strong>const</strong></span>&amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1220866"></a><h2>Description</h2>
+<p>
+ Generally shouldn't be called directly by users, instead they should use
+ <code class="computeroutput"><a href="boost/hash.html" title="Struct template hash">boost::hash</a></code>, <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">boost::hash_range</a></code>
+ or <code class="computeroutput"><a href="hash_combine.html" title="Function template hash_combine">boost::hash_combine</a></code> which
+ call hash_value without namespace qualification so that overloads
+ for custom types are found via ADL.
+ </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Overloads for other types supplied in other headers.<p>This is an extension to TR1</p><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">hash_range(val.begin(), val.end())</code></p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1070986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1082064"><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="id975607.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id898032.html b/doc/html/id898032.html
new file mode 100644
index 0000000000..913bbaa412
--- /dev/null
+++ b/doc/html/id898032.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id836835" title="Header &lt;boost/functional/hash/set.hpp&gt;">
+<link rel="prev" href="id1068792.html" title="Function hash_value">
+<link rel="next" href="id873294.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1068792.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id836835"><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="id873294.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id898032"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::set&lt;K, C, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> K, <span class="bold"><strong>typename</strong></span> C, <span class="bold"><strong>typename</strong></span> A&gt;
+  <span class="type">std::size_t</span> hash_value(std::multiset&lt;K, C, A&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1221810"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="hash_range.html" title="Function hash_range">hash_range</a>(val.begin(), val.end());</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(T)</code> throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1068792.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id836835"><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="id873294.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id901063.html b/doc/html/id901063.html
new file mode 100644
index 0000000000..45ee2acb4f
--- /dev/null
+++ b/doc/html/id901063.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id967018.html" title="Function operator-">
+<link rel="next" href="id937125.html" title="Class time_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id967018.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id937125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id901063"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-=</span></h2>
+<p>boost::posix_time::operator-= &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>-=(<a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175475"></a><h2>Description</h2>
+<p>Subtracts a years object from a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id967018.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id937125.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id905079.html b/doc/html/id905079.html
new file mode 100644
index 0000000000..c408094c3d
--- /dev/null
+++ b/doc/html/id905079.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&gt;&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1040233" title="Header &lt;boost/date_time/posix_time/posix_time_legacy_io.hpp&gt;">
+<link rel="prev" href="seconds.html" title="Class seconds">
+<link rel="next" href="ptime.html" title="Class ptime">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="seconds.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1040233"><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="ptime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id905079"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&gt;&gt;</span></h2>
+<p>boost::posix_time::operator&gt;&gt; &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">std::basic_istream&lt; charT &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, time_period &amp; tp);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1177801"></a><h2>Description</h2>
+<p>operator&gt;&gt; for time_period. time_period must be in "[date time_duration/date time_duration]" format. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="seconds.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1040233"><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="ptime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id906590-bb.html b/doc/html/id906590-bb.html
new file mode 100644
index 0000000000..83d4f63551
--- /dev/null
+++ b/doc/html/id906590-bb.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class last_value&lt;void&gt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id936232" title="Header &lt;boost/last_value.hpp&gt;">
+<link rel="prev" href="last_value.html" title="Class template last_value">
+<link rel="next" href="signals/s04.html" title="Frequently Asked Questions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id936232"><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="signals/s04.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id906590-bb"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class last_value&lt;void&gt;</span></h2>
+<p>boost::last_value&lt;void&gt; &#8212; Evaluate an InputIterator sequence.</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"><strong>class</strong></span> last_value&lt;<span class="bold"><strong>void</strong></span>&gt; {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> result_type;
+
+  <span class="emphasis"><em>// <a href="id906590-bb.html#id1012898-bb">invocation</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a>&gt;
+    <span class="type">result_type</span> <a href="id906590-bb.html#id755548-bb"><span class="bold"><strong>operator</strong></span>()</a>(InputIterator, InputIterator) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1287194"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1287197"></a><h3>
+<a name="id1012898-bb"></a><code class="computeroutput">last_value</code> invocation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a>&gt;
+  <span class="type">result_type</span> <a name="id755548-bb"></a><span class="bold"><strong>operator</strong></span>()(InputIterator first, InputIterator last) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Dereferences every iterator in the sequence <code class="computeroutput">[first, last)</code>.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id936232"><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="signals/s04.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id928296.html b/doc/html/id928296.html
new file mode 100644
index 0000000000..ac5440ef0c
--- /dev/null
+++ b/doc/html/id928296.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template swap</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1258086" title="Header &lt;boost/variant/variant.hpp&gt;">
+<link rel="prev" href="boost/variant.html" title="Class template variant">
+<link rel="next" href="id1214336.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/variant.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="id1214336.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id928296"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template swap</span></h2>
+<p>boost::swap &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> swap(<a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp; lhs, <a href="boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp; rhs);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1665885"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Swaps <code class="computeroutput">lhs</code> with <code class="computeroutput">rhs</code> by application
+ of <code class="computeroutput"><a href="boost/variant.html#id1047505-bb">variant::swap</a></code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exception arising from
+ <code class="computeroutput"><a href="boost/variant.html#id1047505-bb">variant::swap</a></code>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/variant.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="id1214336.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id934351.html b/doc/html/id934351.html
new file mode 100644
index 0000000000..d4a2bb6304
--- /dev/null
+++ b/doc/html/id934351.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id802530.html" title="Function operator-=">
+<link rel="next" href="id974669.html" title="Function operator+=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id802530.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id974669.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id934351"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+</span></h2>
+<p>boost::posix_time::operator+ &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> <a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175300"></a><h2>Description</h2>
+<p>Adds a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id802530.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id974669.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id934588.html b/doc/html/id934588.html
new file mode 100644
index 0000000000..a9bcad7460
--- /dev/null
+++ b/doc/html/id934588.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856825" title="Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;">
+<link rel="prev" href="id1037413.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="id961567.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1037413.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id961567.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id934588"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::gregorian::operator&lt;&lt; &#8212; operator&lt;&lt; for gregorian::greg_month typically streaming: Jan, Feb, Mar... </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+  <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <span class="bold"><strong>const</strong></span> <a href="greg_month.html" title="Class greg_month">greg_month</a> &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1152526"></a><h2>Description</h2>
+<p>Uses the date facet to determine output string as well as selection of long or short strings. Default if no facet is installed is to output a 2 wide numeric value for the month eg: 01 == Jan, 02 == Feb, ... 12 == Dec. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1037413.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id961567.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id935001.html b/doc/html/id935001.html
new file mode 100644
index 0000000000..c767f74b16
--- /dev/null
+++ b/doc/html/id935001.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator==</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="id791859.html" title="Function operator||">
+<link rel="next" href="id1222476.html" title="Function operator!=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id791859.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id1222476.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id935001"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator==</span></h2>
+<p>boost::logic::operator== &#8212; Compare tribools for equality. </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="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>==(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>==(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <span class="bold"><strong>bool</strong></span> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>bool</strong></span> x, <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> y);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>==(indeterminate_keyword_t , <a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x);
+<span class="type"><a href="boost/logic/tribool.html" title="Class tribool">tribool</a></span> <span class="bold"><strong>operator</strong></span>==(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, indeterminate_keyword_t );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1570763"></a><h2>Description</h2>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ the result of comparing two tribool values, according to the following table: <div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong><code class="computeroutput">==</code></strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>false</strong></span></td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>true</strong></span></td>
+<td align="center" valign="middle">false</td>
+<td align="center" valign="middle">true</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+<tr>
+<td align="center" valign="middle"><span class="bold"><strong>indeterminate</strong></span></td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">indeterminate</td>
+<td align="center" valign="middle">indeterminate</td>
+</tr>
+</tbody>
+</table></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id791859.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id1222476.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id935311.html b/doc/html/id935311.html
new file mode 100644
index 0000000000..3d00ad88b5
--- /dev/null
+++ b/doc/html/id935311.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class invalid_command_line_syntax</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="invalid_command_line_style.html" title="Class invalid_command_line_style">
+<link rel="next" href="invalid_option_value.html" title="Class invalid_option_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_command_line_style.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_option_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id935311"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class invalid_command_line_syntax</span></h2>
+<p>boost::program_options::invalid_command_line_syntax &#8212; </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"><strong>class</strong></span> invalid_command_line_syntax {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id935311.html#id935311construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id935311.html#id863050-bb">invalid_command_line_syntax</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, kind_t);
+
+  <span class="emphasis"><em>// <a href="id935311.html#id823164-bb">public member functions</a></em></span>
+  <span class="type">kind_t</span> <a href="id935311.html#id733412-bb">kind</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="id935311.html#id998649-bb">protected static functions</a></em></span>
+  <span class="type">std::string</span> <a href="id935311.html#id1009745-bb">error_message</a>(kind_t) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250418"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1250422"></a><h3>
+<a name="id935311construct-copy-destruct"></a><code class="computeroutput">invalid_command_line_syntax</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id863050-bb"></a>invalid_command_line_syntax(<span class="bold"><strong>const</strong></span> std::string &amp; tokens, kind_t kind);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250463"></a><h3>
+<a name="id823164-bb"></a><code class="computeroutput">invalid_command_line_syntax</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">kind_t</span> <a name="id733412-bb"></a>kind() <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250503"></a><h3>
+<a name="id998649-bb"></a><code class="computeroutput">invalid_command_line_syntax</code> protected static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">std::string</span> <a name="id1009745-bb"></a>error_message(kind_t kind) ;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_command_line_style.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_option_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id937125.html b/doc/html/id937125.html
new file mode 100644
index 0000000000..04ea2b760d
--- /dev/null
+++ b/doc/html/id937125.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class time_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id937109" title="Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;">
+<link rel="prev" href="id901063.html" title="Function operator-=">
+<link rel="next" href="simple_time_rep.html" title="Struct simple_time_rep">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id901063.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="simple_time_rep.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id937125"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class time_duration</span></h2>
+<p>boost::posix_time::time_duration &#8212; Base time duration type. </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"><strong>class</strong></span> time_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_res_traits                          rep_type;               
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::day_type                day_type;               
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::hour_type               hour_type;              
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::min_type                min_type;               
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::sec_type                sec_type;               
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::fractional_seconds_type fractional_seconds_type;
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::tick_type               tick_type;              
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::impl_type               impl_type;              
+
+  <span class="emphasis"><em>// <a href="id937125.html#id937125construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id937125.html#id1079612-bb">time_duration</a>(hour_type, min_type, sec_type, fractional_seconds_type = 0);
+  <a href="id937125.html#id930715-bb">time_duration</a>();
+  <a href="id937125.html#id930718-bb">time_duration</a>(boost::date_time::special_values);
+  <a href="id937125.html#id861688-bb">time_duration</a>(impl_type);
+
+  <span class="emphasis"><em>// <a href="id937125.html#id1079607-bb">public member functions</a></em></span>
+
+  <span class="emphasis"><em>// <a href="id937125.html#id861682-bb">private member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175768"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1175772"></a><h3>
+<a name="id937125construct-copy-destruct"></a><code class="computeroutput">time_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1079612-bb"></a>time_duration(hour_type hour, min_type min, sec_type sec,
+              fractional_seconds_type fs = 0);</pre></li>
+<li><pre class="literallayout"><a name="id930715-bb"></a>time_duration();</pre></li>
+<li><pre class="literallayout"><a name="id930718-bb"></a>time_duration(boost::date_time::special_values sv);</pre></li>
+<li><pre class="literallayout"><a name="id861688-bb"></a>time_duration(impl_type ticks);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1175848"></a><h3>
+<a name="id1079607-bb"></a><code class="computeroutput">time_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1175865"></a><h3>
+<a name="id861682-bb"></a><code class="computeroutput">time_duration</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id901063.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="simple_time_rep.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id961567.html b/doc/html/id961567.html
new file mode 100644
index 0000000000..6dcfebd6ad
--- /dev/null
+++ b/doc/html/id961567.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856825" title="Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;">
+<link rel="prev" href="id934588.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="id792474.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id934588.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id792474.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id961567"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::gregorian::operator&lt;&lt; &#8212; operator&lt;&lt; for gregorian::greg_weekday typically streaming: Sun, Mon, Tue, ... </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits&gt;
+  <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+             <span class="bold"><strong>const</strong></span> <a href="greg_weekday.html" title="Class greg_weekday">greg_weekday</a> &amp; wd);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1152604"></a><h2>Description</h2>
+<p>Uses the date facet to determine output string as well as selection of long or short string. Default if no facet is installed is to output a 3 char english string for the day of the week. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id934588.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856825"><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="id792474.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id964834.html b/doc/html/id964834.html
new file mode 100644
index 0000000000..c8e537f734
--- /dev/null
+++ b/doc/html/id964834.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id967615.html" title="Function operator+">
+<link rel="next" href="id1076157.html" title="Function operator-">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id967615.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1076157.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id964834"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+=</span></h2>
+<p>boost::local_time::operator+= &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>+=(local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180360"></a><h2>Description</h2>
+<p>Adds a years object to a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id967615.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id1076157.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id967018.html b/doc/html/id967018.html
new file mode 100644
index 0000000000..70f97c0830
--- /dev/null
+++ b/doc/html/id967018.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator-</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id974669.html" title="Function operator+=">
+<link rel="next" href="id901063.html" title="Function operator-=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974669.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id901063.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id967018"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator-</span></h2>
+<p>boost::posix_time::operator- &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> <a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175419"></a><h2>Description</h2>
+<p>Subtracts a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974669.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id901063.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id967615.html b/doc/html/id967615.html
new file mode 100644
index 0000000000..3da10f2f73
--- /dev/null
+++ b/doc/html/id967615.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1031665" title="Header &lt;boost/date_time/local_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id681933.html" title="Function operator-=">
+<link rel="next" href="id964834.html" title="Function operator+=">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id681933.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id964834.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id967615"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+</span></h2>
+<p>boost::local_time::operator+ &#8212; </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="type">local_date_time</span>
+<span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> local_date_time &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1180313"></a><h2>Description</h2>
+<p>Adds a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id681933.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1031665"><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="id964834.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id974575.html b/doc/html/id974575.html
new file mode 100644
index 0000000000..d93b6ac529
--- /dev/null
+++ b/doc/html/id974575.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class millisec_posix_time_system_config</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id937109" title="Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;">
+<link rel="prev" href="posix_time_system_config.html" title="Class posix_time_system_config">
+<link rel="next" href="hours.html" title="Class hours">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time_system_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="hours.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id974575"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class millisec_posix_time_system_config</span></h2>
+<p>boost::posix_time::millisec_posix_time_system_config &#8212; </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"><strong>class</strong></span> millisec_posix_time_system_config {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::int64_t             time_rep_type;     
+  <span class="bold"><strong>typedef</strong></span> gregorian::date            date_type;         
+  <span class="bold"><strong>typedef</strong></span> gregorian::date_duration   date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="id937125.html" title="Class time_duration">time_duration</a>              time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::tick_type int_type;          
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::impl_type impl_type;         
+  <span class="bold"><strong>typedef</strong></span> time_res_traits            resolution_traits; 
+
+  <span class="emphasis"><em>// <a href="id974575.html#id972821-bb">public member functions</a></em></span>
+  <span class="type"></span> <a href="id974575.html#id972826-bb">BOOST_STATIC_CONSTANT</a>(boost::int64_t, tick_per_second = 1000000) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1176475"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1176478"></a><h3>
+<a name="id972821-bb"></a><code class="computeroutput">millisec_posix_time_system_config</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id972826-bb"></a>BOOST_STATIC_CONSTANT(boost::int64_t , tick_per_second = 1000000) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time_system_config.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="hours.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id974669.html b/doc/html/id974669.html
new file mode 100644
index 0000000000..b34aa383ad
--- /dev/null
+++ b/doc/html/id974669.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function operator+=</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798666" title="Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;">
+<link rel="prev" href="id934351.html" title="Function operator+">
+<link rel="next" href="id967018.html" title="Function operator-">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id934351.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id967018.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id974669"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function operator+=</span></h2>
+<p>boost::posix_time::operator+= &#8212; </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="type"><a href="ptime.html" title="Class ptime">ptime</a></span> <span class="bold"><strong>operator</strong></span>+=(<a href="ptime.html" title="Class ptime">ptime</a> &amp; t, <span class="bold"><strong>const</strong></span> boost::gregorian::years &amp; y);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1175357"></a><h2>Description</h2>
+<p>Adds a years object to a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id934351.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798666"><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="id967018.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id974797.html b/doc/html/id974797.html
new file mode 100644
index 0000000000..7cf5dd363c
--- /dev/null
+++ b/doc/html/id974797.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type ymd_order_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id908537" title="Header &lt;boost/date_time/parse_format_base.hpp&gt;">
+<link rel="prev" href="microsec_clock.html" title="Class template microsec_clock">
+<link rel="next" href="period.html" title="Class template period">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="microsec_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id908537"><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="period.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id974797"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type ymd_order_spec</span></h2>
+<p>boost::date_time::ymd_order_spec &#8212; Enum for distinguishing the order of Month, Day, &amp; Year. </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"><strong>enum</strong></span> ymd_order_spec { ymd_order_iso, ymd_order_dmy, ymd_order_us };</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="microsec_clock.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id908537"><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="period.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id975607.html b/doc/html/id975607.html
new file mode 100644
index 0000000000..ac7867e0ba
--- /dev/null
+++ b/doc/html/id975607.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function hash_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="hash/reference_.html#id1081880" title="Header &lt;boost/functional/hash/pair.hpp&gt;">
+<link rel="prev" href="id897675.html" title="Function hash_value">
+<link rel="next" href="id1000285.html" title="Function hash_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id897675.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1081880"><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="id1000285.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id975607"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function hash_value</span></h2>
+<p>boost::hash_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> A, <span class="bold"><strong>typename</strong></span> B&gt;
+  <span class="type">std::size_t</span> hash_value(std::pair&lt;A, B&gt; <span class="bold"><strong>const</strong></span> &amp; val);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1221045"></a><h2>Description</h2>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <pre class="programlisting">
+size_t seed = 0;
+<a href="hash_combine.html" title="Function template hash_combine">hash_combine</a>(seed, val.first);
+<a href="hash_combine.html" title="Function template hash_combine">hash_combine</a>(seed, val.second);
+return seed;
+ </pre><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+
+ Only throws if <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(A)</code>
+ or <code class="computeroutput"><a href="id1042434.html" title="Function hash_value">hash_value</a>(B)</code> throws.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is an extension to TR1</p>
+</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 © 2005 Daniel James</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id897675.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="hash/reference_.html#id1081880"><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="id1000285.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id977316.html b/doc/html/id977316.html
new file mode 100644
index 0000000000..7a3acb1066
--- /dev/null
+++ b/doc/html/id977316.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template operator&lt;&lt;</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id928427" title="Header &lt;boost/date_time/int_adapter.hpp&gt;">
+<link rel="prev" href="int_adapter.html" title="Class template int_adapter">
+<link rel="next" href="iso_format_base.html" title="Class template iso_format_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="int_adapter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928427"><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="iso_format_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id977316"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template operator&lt;&lt;</span></h2>
+<p>boost::date_time::operator&lt;&lt; &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT, <span class="bold"><strong>typename</strong></span> traits, <span class="bold"><strong>typename</strong></span> int_type&gt;
+  <span class="type">std::basic_ostream&lt; charT, traits &gt; &amp;</span>
+  <span class="bold"><strong>operator</strong></span>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os,
+             <span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; int_type &gt; &amp; ia);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1106056"></a><h2>Description</h2>
+<p>Expected output is either a numeric representation or a special values representation.
+ Ex. "12", "+infinity", "not-a-number", etc. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="int_adapter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928427"><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="iso_format_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/id977493.html b/doc/html/id977493.html
new file mode 100644
index 0000000000..c0c99ca6f6
--- /dev/null
+++ b/doc/html/id977493.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class too_many_positional_options_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="id766036.html" title="Class too_few_positional_options_error">
+<link rel="next" href="unknown_option.html" title="Class unknown_option">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id766036.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="unknown_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="id977493"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class too_many_positional_options_error</span></h2>
+<p>boost::program_options::too_many_positional_options_error &#8212; </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"><strong>class</strong></span> too_many_positional_options_error
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::error
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="id977493.html#id977493construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="id977493.html#id1141065-bb">too_many_positional_options_error</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="id977493.html#id1117030-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1251381"></a><h2>Description</h2>
+<p>Class thrown when there are too many positional options. </p>
+<div class="refsect2" lang="en">
+<a name="id1251387"></a><h3>
+<a name="id977493construct-copy-destruct"></a><code class="computeroutput">too_many_positional_options_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1141065-bb"></a>too_many_positional_options_error(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251427"></a><h3>
+<a name="id1117030-bb"></a><code class="computeroutput">too_many_positional_options_error</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id766036.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="unknown_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/identity_formatter.html b/doc/html/identity_formatter.html
new file mode 100644
index 0000000000..160fe97ba3
--- /dev/null
+++ b/doc/html/identity_formatter.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template identity_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1213774" title="Header &lt;boost/algorithm/string/formatter.hpp&gt;">
+<link rel="prev" href="const_formatter.html" title="Function template const_formatter">
+<link rel="next" href="empty_formatter.html" title="Function template empty_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="const_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="empty_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="identity_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template identity_formatter</span></h2>
+<p>boost::algorithm::identity_formatter &#8212; Identity formatter. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> identity_formatter();</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325698"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">identity_formatter</code> . Identity formatter always returns the parameter.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">identity_formatter</code> object. </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="const_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1213774"><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="empty_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/iends_with.html b/doc/html/iends_with.html
new file mode 100644
index 0000000000..a59b9a8f6c
--- /dev/null
+++ b/doc/html/iends_with.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template iends_with</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="ends_with.html" title="Function ends_with">
+<link rel="next" href="contains.html" title="Function contains">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ends_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="contains.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="iends_with"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template iends_with</span></h2>
+<p>boost::algorithm::iends_with &#8212; 'Ends with' predicate ( case insensitive ) </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> iends_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1326988"></a><h2>Description</h2>
+<p>This predicate holds when the test container is a suffix of the Input. In other words, if the input ends with the test. Elements are compared case insensitively.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ends_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="contains.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/iequals.html b/doc/html/iequals.html
new file mode 100644
index 0000000000..4f023a3634
--- /dev/null
+++ b/doc/html/iequals.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template iequals</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="equals.html" title="Function equals">
+<link rel="next" href="all.html" title="Function template all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="equals.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="iequals"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template iequals</span></h2>
+<p>boost::algorithm::iequals &#8212; 'Equals' predicate ( casa insensitive ) </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> iequals(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test,
+               <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1327560"></a><h2>Description</h2>
+<p>This predicate holds when the test container is equal to the input container i.e. all elements in both containers are same. Elements are compared case insensitively.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This is a two-way version of <code class="computeroutput">std::equal</code> algorithm<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="equals.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_all.html b/doc/html/ierase_all.html
new file mode 100644
index 0000000000..d94e132631
--- /dev/null
+++ b/doc/html/ierase_all.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ierase_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_all_copy.html" title="Function ierase_all_copy">
+<link rel="next" href="erase_head_copy.html" title="Function erase_head_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_head_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ierase_all</span></h2>
+<p>boost::algorithm::ierase_all &#8212; Erase all algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ierase_all(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319379"></a><h2>Description</h2>
+<p>Remove all the occurrences of the string from the input. The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_head_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_all_copy.html b/doc/html/ierase_all_copy.html
new file mode 100644
index 0000000000..1fc6d0a484
--- /dev/null
+++ b/doc/html/ierase_all_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ierase_all_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_all.html" title="Function template erase_all">
+<link rel="next" href="ierase_all.html" title="Function template ierase_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_all_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ierase_all_copy</span></h2>
+<p>boost::algorithm::ierase_all_copy &#8212; Erase all algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  ierase_all_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                  <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> ierase_all_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                            <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1319251"></a><h2>Description</h2>
+<p>Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_first.html b/doc/html/ierase_first.html
new file mode 100644
index 0000000000..3f3124b57d
--- /dev/null
+++ b/doc/html/ierase_first.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ierase_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_first_copy.html" title="Function ierase_first_copy">
+<link rel="next" href="erase_last_copy.html" title="Function erase_last_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ierase_first</span></h2>
+<p>boost::algorithm::ierase_first &#8212; Erase first algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ierase_first(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317718"></a><h2>Description</h2>
+<p>Remove the first occurrence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_first_copy.html b/doc/html/ierase_first_copy.html
new file mode 100644
index 0000000000..c5487b8bfb
--- /dev/null
+++ b/doc/html/ierase_first_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ierase_first_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_first.html" title="Function template erase_first">
+<link rel="next" href="ierase_first.html" title="Function template ierase_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_first_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ierase_first_copy</span></h2>
+<p>boost::algorithm::ierase_first_copy &#8212; Erase first algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  ierase_first_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> ierase_first_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1317591"></a><h2>Description</h2>
+<p>Remove the first occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_last.html b/doc/html/ierase_last.html
new file mode 100644
index 0000000000..efd02b248e
--- /dev/null
+++ b/doc/html/ierase_last.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ierase_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_last_copy.html" title="Function ierase_last_copy">
+<link rel="next" href="erase_nth_copy.html" title="Function erase_nth_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ierase_last</span></h2>
+<p>boost::algorithm::ierase_last &#8212; Erase last algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ierase_last(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                   <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318239"></a><h2>Description</h2>
+<p>Remove the last occurrence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_last_copy.html b/doc/html/ierase_last_copy.html
new file mode 100644
index 0000000000..16fcdd6ad6
--- /dev/null
+++ b/doc/html/ierase_last_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ierase_last_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_last.html" title="Function template erase_last">
+<link rel="next" href="ierase_last.html" title="Function template ierase_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_last_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ierase_last_copy</span></h2>
+<p>boost::algorithm::ierase_last_copy &#8212; Erase last algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  ierase_last_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                   <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+                   <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> ierase_last_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                             <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318112"></a><h2>Description</h2>
+<p>Remove the last occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_nth.html b/doc/html/ierase_nth.html
new file mode 100644
index 0000000000..c30627f361
--- /dev/null
+++ b/doc/html/ierase_nth.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ierase_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="ierase_nth_copy.html" title="Function ierase_nth_copy">
+<link rel="next" href="erase_all_copy.html" title="Function erase_all_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ierase_nth</span></h2>
+<p>boost::algorithm::ierase_nth &#8212; Erase nth algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ierase_nth(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318850"></a><h2>Description</h2>
+<p>Remove the Nth occurrence of the substring in the input. The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ierase_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="erase_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ierase_nth_copy.html b/doc/html/ierase_nth_copy.html
new file mode 100644
index 0000000000..c2c83eee16
--- /dev/null
+++ b/doc/html/ierase_nth_copy.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ierase_nth_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">
+<link rel="prev" href="erase_nth.html" title="Function template erase_nth">
+<link rel="next" href="ierase_nth.html" title="Function template ierase_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ierase_nth_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ierase_nth_copy</span></h2>
+<p>boost::algorithm::ierase_nth_copy &#8212; Erase nth algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  ierase_nth_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                  <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> ierase_nth_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> RangeT &amp; Search,
+                            <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                            <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1318704"></a><h2>Description</h2>
+<p>Remove the Nth occurrence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="erase_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id904993"><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="ierase_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ifind_all.html b/doc/html/ifind_all.html
new file mode 100644
index 0000000000..3a65feb59b
--- /dev/null
+++ b/doc/html/ifind_all.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ifind_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1147531" title="Header &lt;boost/algorithm/string/split.hpp&gt;">
+<link rel="prev" href="find_all.html" title="Function template find_all">
+<link rel="next" href="id726784.html" title="Function template split">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="id726784.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ifind_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ifind_all</span></h2>
+<p>boost::algorithm::ifind_all &#8212; Find all algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceSequenceT &amp;</span>
+  ifind_all(SequenceSequenceT &amp; Result, Range1T &amp; Input,
+            <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1354804"></a><h2>Description</h2>
+<p>This algorithm finds all occurrences of the search string in the input. Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<p>Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Result</span></dt>
+<dd><p>A container that can hold copies of references to the substrings </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference the result<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Prior content of the result will be overwritten.<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1147531"><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="id726784.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ifind_first.html b/doc/html/ifind_first.html
new file mode 100644
index 0000000000..3f6bd5c6d4
--- /dev/null
+++ b/doc/html/ifind_first.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ifind_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find_first.html" title="Function template find_first">
+<link rel="next" href="find_last.html" title="Function template find_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ifind_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ifind_first</span></h2>
+<p>boost::algorithm::ifind_first &#8212; Find first algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  ifind_first(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+              <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1320691"></a><h2>Description</h2>
+<p>Search for the first occurence of the substring in the input. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ifind_last.html b/doc/html/ifind_last.html
new file mode 100644
index 0000000000..e4951e633c
--- /dev/null
+++ b/doc/html/ifind_last.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ifind_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find_last.html" title="Function template find_last">
+<link rel="next" href="find_nth.html" title="Function template find_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ifind_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ifind_last</span></h2>
+<p>boost::algorithm::ifind_last &#8212; Find last algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  ifind_last(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+             <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1320953"></a><h2>Description</h2>
+<p>Search for the last match a string in the input. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ifind_nth.html b/doc/html/ifind_nth.html
new file mode 100644
index 0000000000..9c90ea40b6
--- /dev/null
+++ b/doc/html/ifind_nth.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ifind_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">
+<link rel="prev" href="find_nth.html" title="Function template find_nth">
+<link rel="next" href="find_head.html" title="Function template find_head">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ifind_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ifind_nth</span></h2>
+<p>boost::algorithm::ifind_nth &#8212; Find n-th algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+  ifind_nth(Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+            <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1321237"></a><h2>Description</h2>
+<p>Search for the n-th (zero-indexed) occurence of the substring in the input. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A string which will be searched. </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index (zero-indexed) of the match to be found. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An <code class="computeroutput">iterator_range</code> delimiting the match. Returned iterator is either <code class="computeroutput">Range1T::iterator</code> or <code class="computeroutput">Range1T::const_iterator</code> , depending on the constness of the input parameter.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1102090"><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="find_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/indeterminate.html b/doc/html/indeterminate.html
new file mode 100644
index 0000000000..3e208d97c4
--- /dev/null
+++ b/doc/html/indeterminate.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function indeterminate</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id996838" title="Header &lt;boost/logic/tribool.hpp&gt;">
+<link rel="prev" href="boost/logic/tribool.html" title="Class tribool">
+<link rel="next" href="id866049.html" title="Function operator!">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/logic/tribool.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id866049.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="indeterminate"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function indeterminate</span></h2>
+<p>boost::logic::indeterminate &#8212; Keyword and test function for the indeterminate tribool value. </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="type"><span class="bold"><strong>bool</strong></span></span> indeterminate(<a href="boost/logic/tribool.html" title="Class tribool">tribool</a> x, <span class="emphasis"><em>unspecified</em></span> dummy = <span class="emphasis"><em>unspecified</em></span>);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1569800"></a><h2>Description</h2>
+<p>The <code class="computeroutput">indeterminate</code> function has a dual role. It's first role is as a unary function that tells whether the tribool value is in the "indeterminate" state. It's second role is as a keyword representing the indeterminate (just like "true" and "false" represent the true and false states). If you do not like the name "indeterminate", and would prefer to use a different name, see the macro <code class="computeroutput">BOOST_TRIBOOL_THIRD_STATE</code> .</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">x.value == tribool::indeterminate_value</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/logic/tribool.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id996838"><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="id866049.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/indeterminate_name.html b/doc/html/indeterminate_name.html
new file mode 100644
index 0000000000..3210a176ec
--- /dev/null
+++ b/doc/html/indeterminate_name.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template indeterminate_name</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="tribool/reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
+<link rel="prev" href="BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">
+<link rel="next" href="id1244293.html" title="Function template get_default_indeterminate_name">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_TRIBOOL_THIRD_STATE.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1244293.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="indeterminate_name"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template indeterminate_name</span></h2>
+<p>boost::logic::indeterminate_name &#8212; A locale facet specifying the name of the indeterminate value of a tribool. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt;
+<span class="bold"><strong>class</strong></span> indeterminate_name {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> CharT                      char_type;  
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt; string_type;
+
+  <span class="emphasis"><em>// <a href="indeterminate_name.html#indeterminate_nameconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="indeterminate_name.html#id1244246-bb">indeterminate_name</a>();
+  <a href="indeterminate_name.html#id1244254-bb">indeterminate_name</a>(<span class="bold"><strong>const</strong></span> string_type &amp;);
+
+  <span class="emphasis"><em>// <a href="indeterminate_name.html#id1244222-bb">public member functions</a></em></span>
+  <span class="type">string_type</span> <a href="indeterminate_name.html#id1244227-bb">name</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1571725"></a><h2>Description</h2>
+<p>The facet is used to perform I/O on tribool values when <code class="computeroutput">std::boolalpha</code> has been specified. This class template is only available if the C++ standard library implementation supports locales. </p>
+<div class="refsect2" lang="en">
+<a name="id1571739"></a><h3>
+<a name="indeterminate_nameconstruct-copy-destruct"></a><code class="computeroutput">indeterminate_name</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1244246-bb"></a>indeterminate_name();</pre></li>
+<li><pre class="literallayout"><a name="id1244254-bb"></a>indeterminate_name(<span class="bold"><strong>const</strong></span> string_type &amp; name);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1571792"></a><h3>
+<a name="id1244222-bb"></a><code class="computeroutput">indeterminate_name</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">string_type</span> <a name="id1244227-bb"></a>name() <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_TRIBOOL_THIRD_STATE.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="tribool/reference.html#id1277344"><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="id1244293.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000000..64a6595641
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>The Boost C++ Libraries</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="next" href="libraries.html" title="Part I. The Boost C++ Libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="libraries.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="book" lang="en">
+<div class="titlepage">
+<div><div><h1 class="title">
+<a name="id697609"></a>The Boost C++ Libraries</h1></div></div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="part"><a href="libraries.html">I. The Boost C++ Libraries</a></span></dt>
+<dd><dl>
+<dt><span class="chapter"><a href="any.html">1. Boost.Any</a></span></dt>
+<dt><span class="chapter"><a href="array.html">2. Boost.Array</a></span></dt>
+<dt><span class="chapter"><a href="date_time.html">3. Boost.Date_Time</a></span></dt>
+<dt><span class="chapter"><a href="function.html">4. Boost.Function</a></span></dt>
+<dt><span class="chapter"><a href="hash.html">5. Boost.Functional/Hash</a></span></dt>
+<dt><span class="chapter"><a href="lambda.html">6. Boost.Lambda</a></span></dt>
+<dt><span class="chapter"><a href="program_options.html">7. Boost.Program_options</a></span></dt>
+<dt><span class="chapter"><a href="ref.html">8. Boost.Ref</a></span></dt>
+<dt><span class="chapter"><a href="signals.html">9. Boost.Signals</a></span></dt>
+<dt><span class="chapter"><a href="boost_staticassert.html">10. Boost.StaticAssert</a></span></dt>
+<dt><span class="chapter"><a href="string_algo.html">11. Boost String Algorithms Library</a></span></dt>
+<dt><span class="chapter"><a href="threads.html">12. Boost.Threads</a></span></dt>
+<dt><span class="chapter"><a href="tribool.html">13. Boost.Tribool</a></span></dt>
+<dt><span class="chapter"><a href="boost_typetraits.html">14. Boost.TypeTraits</a></span></dt>
+<dt><span class="chapter"><a href="variant.html">15. Boost.Variant</a></span></dt>
+</dl></dd>
+<dt><span class="part"><a href="boostbook.html">II. The BoostBook Documentation Format</a></span></dt>
+<dd><dl>
+<dt><span class="chapter"><a href="boostbook/introduction.html">16. Introduction</a></span></dt>
+<dt><span class="chapter"><a href="boostbook/getting/started.html">17. Getting Started</a></span></dt>
+<dt><span class="chapter"><a href="boostbook/documenting.html">18. Documenting libraries</a></span></dt>
+<dt><span class="chapter"><a href="boostbook/together.html">19. Bringing Together a BoostBook Document</a></span></dt>
+<dt><span class="chapter"><a href="reference.html">20. Reference</a></span></dt>
+</dl></dd>
+<dt><span class="part"><a href="bbv2.html">III. Boost.Build v2 User Manual</a></span></dt>
+<dd><dl>
+<dt><span class="chapter"><a href="bbv2/howto.html">21. How to use this document</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/installation.html">22. Installation</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/tutorial.html">23. Tutorial</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/advanced.html">24. User documentation</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/extender.html">25. Extender Manual</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/reference.html">26. Detailed reference</a></span></dt>
+<dt><span class="chapter"><a href="bbv2/faq.html">27. Frequently Asked Questions</a></span></dt>
+<dt><span class="appendix"><a href="bbv2/arch.html">B. Boost.Build v2 architecture</a></span></dt>
+</dl></dd>
+<dt><span class="article"><a href="who_s_using_boost_.html">Who's Using Boost?</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="who_s_using_boost_.html#who_s_using_boost_.intro"></a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/shrink.html"> Shrink Wrapped Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/open.html"> Open Source Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/inhouse.html"> In House Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/submit.html"> Submissions</a></span></dt>
+</dl></dd>
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="libraries.html"><img src="images/next.png" alt="Next"></a></div>
+</body>
+</html>
diff --git a/doc/html/int_adapter.html b/doc/html/int_adapter.html
new file mode 100644
index 0000000000..dcecc92635
--- /dev/null
+++ b/doc/html/int_adapter.html
@@ -0,0 +1,191 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template int_adapter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id928427" title="Header &lt;boost/date_time/int_adapter.hpp&gt;">
+<link rel="prev" href="gregorian_calendar_base.html" title="Class template gregorian_calendar_base">
+<link rel="next" href="id977316.html" title="Function template operator&lt;&lt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian_calendar_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928427"><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="id977316.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="int_adapter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template int_adapter</span></h2>
+<p>boost::date_time::int_adapter &#8212; Adapter to create integer types with +-infinity, and not a value. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_&gt;
+<span class="bold"><strong>class</strong></span> int_adapter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> int_type_ int_type;
+
+  <span class="emphasis"><em>// <a href="int_adapter.html#int_adapterconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="int_adapter.html#id797273-bb">int_adapter</a>(int_type);
+
+  <span class="emphasis"><em>// <a href="int_adapter.html#id1101055-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id1101060-bb">is_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id896533-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id896546-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id896559-bb">is_nan</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id896572-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id896585-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id966120-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id966143-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id966171-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id966194-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id966222-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id999196-bb"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">int_type</span> <a href="int_adapter.html#id796793-bb">as_number</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">special_values</span> <a href="int_adapter.html#id926562-bb">as_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rhs_type&gt;
+    <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id935569-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; rhs_type &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id892662-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rhs_type&gt;
+    <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1002578-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; rhs_type &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id969993-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id974147-bb"><span class="bold"><strong>operator</strong></span> *</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id972356-bb"><span class="bold"><strong>operator</strong></span> *</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1113420-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id970596-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id969544-bb"><span class="bold"><strong>operator</strong></span>%</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1046944-bb"><span class="bold"><strong>operator</strong></span>%</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="int_adapter.html#id797287-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id1002826-bb">has_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1002839-bb">pos_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1102284-bb">neg_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id970925-bb">not_a_number</a>() ;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> max</span> <a href="int_adapter.html#id802326-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> min</span> <a href="int_adapter.html#id1045378-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id891671-bb">from_special</a>(special_values) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id1036131-bb">is_inf</a>(int_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id857261-bb">is_neg_inf</a>(int_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id1112298-bb">is_pos_inf</a>(int_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="int_adapter.html#id869110-bb">is_not_a_number</a>(int_type) ;
+  <span class="type">special_values</span> <a href="int_adapter.html#id1072490-bb">to_special</a>(int_type) ;
+  <span class="type">int_type</span> <a href="int_adapter.html#id897144-bb">maxcount</a>() ;
+
+  <span class="emphasis"><em>// <a href="int_adapter.html#id897195-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="int_adapter.html#id897200-bb">compare</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id857725-bb">mult_div_specials</a>(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a href="int_adapter.html#id1042414-bb">mult_div_specials</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1104537"></a><h2>Description</h2>
+<p>This class is used internally in counted date/time representations. It adds the floating point like features of infinities and not a number. It also provides mathmatical operations with consideration to special values following these rules: </p>
+<pre class="programlisting"> +infinity - infinity == Not A Number (NAN)
+ infinity * non-zero == infinity
+ infinity * zero == NAN
+ +infinity * -integer == -infinity
+ infinity / infinity == NAN
+ infinity * infinity == infinity
+ *
+</pre>
+<div class="refsect2" lang="en">
+<a name="id1104555"></a><h3>
+<a name="int_adapterconstruct-copy-destruct"></a><code class="computeroutput">int_adapter</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id797273-bb"></a>int_adapter(int_type v);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1104589"></a><h3>
+<a name="id1101055-bb"></a><code class="computeroutput">int_adapter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1101060-bb"></a>is_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896533-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896546-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896559-bb"></a>is_nan() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896572-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id896585-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id966120-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id966143-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id966171-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id966194-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id966222-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id999196-bb"></a><span class="bold"><strong>operator</strong></span>&gt;(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id796793-bb"></a>as_number() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">special_values</span> <a name="id926562-bb"></a>as_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rhs_type&gt;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id935569-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; rhs_type &gt; &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Operator allows for adding dissimilar int_adapter types. The return type will match that of the the calling object's type </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id892662-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rhs_type&gt;
+  <span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1002578-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a>&lt; rhs_type &gt; &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Operator allows for subtracting dissimilar int_adapter types. The return type will match that of the the calling object's type </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id969993-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id974147-bb"></a><span class="bold"><strong>operator</strong></span> *(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id972356-bb"></a><span class="bold"><strong>operator</strong></span> *(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1113420-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id970596-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id969544-bb"></a><span class="bold"><strong>operator</strong></span>%(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1046944-bb"></a><span class="bold"><strong>operator</strong></span>%(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1105545"></a><h3>
+<a name="id797287-bb"></a><code class="computeroutput">int_adapter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1002826-bb"></a>has_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1002839-bb"></a>pos_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1102284-bb"></a>neg_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id970925-bb"></a>not_a_number() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> max</span> <a name="id802326-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> min</span> <a name="id1045378-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id891671-bb"></a>from_special(special_values sv) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1036131-bb"></a>is_inf(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id857261-bb"></a>is_neg_inf(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1112298-bb"></a>is_pos_inf(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id869110-bb"></a>is_not_a_number(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type">special_values</span> <a name="id1072490-bb"></a>to_special(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id897144-bb"></a>maxcount() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1105850"></a><h3>
+<a name="id897195-bb"></a><code class="computeroutput">int_adapter</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id897200-bb"></a>compare(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id857725-bb"></a>mult_div_specials(<span class="bold"><strong>const</strong></span> <a href="int_adapter.html" title="Class template int_adapter">int_adapter</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="int_adapter.html" title="Class template int_adapter">int_adapter</a></span> <a name="id1042414-bb"></a>mult_div_specials(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gregorian_calendar_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928427"><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="id977316.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/invalid_command_line_style.html b/doc/html/invalid_command_line_style.html
new file mode 100644
index 0000000000..315838b74d
--- /dev/null
+++ b/doc/html/invalid_command_line_style.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class invalid_command_line_style</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="error.html" title="Class error">
+<link rel="next" href="id935311.html" title="Class invalid_command_line_syntax">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id935311.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="invalid_command_line_style"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class invalid_command_line_style</span></h2>
+<p>boost::program_options::invalid_command_line_style &#8212; </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"><strong>class</strong></span> invalid_command_line_style : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="invalid_command_line_style.html#invalid_command_line_styleconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="invalid_command_line_style.html#id688863-bb">invalid_command_line_style</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="invalid_command_line_style.html#id1108868-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250246"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1250250"></a><h3>
+<a name="invalid_command_line_styleconstruct-copy-destruct"></a><code class="computeroutput">invalid_command_line_style</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id688863-bb"></a>invalid_command_line_style(<span class="bold"><strong>const</strong></span> std::string &amp; msg);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250291"></a><h3>
+<a name="id1108868-bb"></a><code class="computeroutput">invalid_command_line_style</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id935311.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/invalid_option_value.html b/doc/html/invalid_option_value.html
new file mode 100644
index 0000000000..1664a8e417
--- /dev/null
+++ b/doc/html/invalid_option_value.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class invalid_option_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="id935311.html" title="Class invalid_command_line_syntax">
+<link rel="next" href="invalid_syntax.html" title="Class invalid_syntax">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id935311.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_syntax.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="invalid_option_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class invalid_option_value</span></h2>
+<p>boost::program_options::invalid_option_value &#8212; </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"><strong>class</strong></span> invalid_option_value
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::validation_error
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="invalid_option_value.html#invalid_option_valueconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="invalid_option_value.html#id1138456-bb">invalid_option_value</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+  <a href="invalid_option_value.html#id1071539-bb">invalid_option_value</a>(<span class="bold"><strong>const</strong></span> std::wstring &amp;);
+
+  <span class="emphasis"><em>// <a href="invalid_option_value.html#id903516-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250629"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1250632"></a><h3>
+<a name="invalid_option_valueconstruct-copy-destruct"></a><code class="computeroutput">invalid_option_value</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1138456-bb"></a>invalid_option_value(<span class="bold"><strong>const</strong></span> std::string &amp; value);</pre></li>
+<li><pre class="literallayout"><a name="id1071539-bb"></a>invalid_option_value(<span class="bold"><strong>const</strong></span> std::wstring &amp; value);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250692"></a><h3>
+<a name="id903516-bb"></a><code class="computeroutput">invalid_option_value</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id935311.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="invalid_syntax.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/invalid_syntax.html b/doc/html/invalid_syntax.html
new file mode 100644
index 0000000000..a254653219
--- /dev/null
+++ b/doc/html/invalid_syntax.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class invalid_syntax</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="invalid_option_value.html" title="Class invalid_option_value">
+<link rel="next" href="multiple_occurrences.html" title="Class multiple_occurrences">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_option_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="multiple_occurrences.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="invalid_syntax"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class invalid_syntax</span></h2>
+<p>boost::program_options::invalid_syntax &#8212; </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"><strong>class</strong></span> invalid_syntax : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="invalid_syntax.html#invalid_syntaxconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="invalid_syntax.html#id698513-bb">invalid_syntax</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;);
+  <a href="invalid_syntax.html#id663999-bb">~invalid_syntax</a>();
+
+  <span class="emphasis"><em>// <a href="invalid_syntax.html#id724949-bb">public member functions</a></em></span>
+
+  std::string tokens;
+  std::string msg;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250801"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1250804"></a><h3>
+<a name="invalid_syntaxconstruct-copy-destruct"></a><code class="computeroutput">invalid_syntax</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id698513-bb"></a>invalid_syntax(<span class="bold"><strong>const</strong></span> std::string &amp; tokens, <span class="bold"><strong>const</strong></span> std::string &amp; msg);</pre></li>
+<li><pre class="literallayout"><a name="id663999-bb"></a>~invalid_syntax();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1250863"></a><h3>
+<a name="id724949-bb"></a><code class="computeroutput">invalid_syntax</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_option_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="multiple_occurrences.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_all.html b/doc/html/ireplace_all.html
new file mode 100644
index 0000000000..17b9d6bbe7
--- /dev/null
+++ b/doc/html/ireplace_all.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ireplace_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_all_copy.html" title="Function ireplace_all_copy">
+<link rel="next" href="replace_head_copy.html" title="Function replace_head_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_head_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ireplace_all</span></h2>
+<p>boost::algorithm::ireplace_all &#8212; Replace all algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ireplace_all(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353319"></a><h2>Description</h2>
+<p>Replace all occurrences of the search string in the input with the format string.The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_head_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_all_copy.html b/doc/html/ireplace_all_copy.html
new file mode 100644
index 0000000000..98fd0e7a81
--- /dev/null
+++ b/doc/html/ireplace_all_copy.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ireplace_all_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_all.html" title="Function template replace_all">
+<link rel="next" href="ireplace_all.html" title="Function template ireplace_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_all_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ireplace_all_copy</span></h2>
+<p>boost::algorithm::ireplace_all_copy &#8212; Replace all algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  ireplace_all_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> ireplace_all_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                              <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353170"></a><h2>Description</h2>
+<p>Replace all occurrences of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_first.html b/doc/html/ireplace_first.html
new file mode 100644
index 0000000000..d17d884a70
--- /dev/null
+++ b/doc/html/ireplace_first.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ireplace_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_first_copy.html" title="Function ireplace_first_copy">
+<link rel="next" href="replace_last_copy.html" title="Function replace_last_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ireplace_first</span></h2>
+<p>boost::algorithm::ireplace_first &#8212; Replace first algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ireplace_first(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                      <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351299"></a><h2>Description</h2>
+<p>Replace the first match of the search substring in the input with the format string. Input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_first_copy.html b/doc/html/ireplace_first_copy.html
new file mode 100644
index 0000000000..c0f1fb65ba
--- /dev/null
+++ b/doc/html/ireplace_first_copy.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ireplace_first_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_first.html" title="Function template replace_first">
+<link rel="next" href="ireplace_first.html" title="Function template ireplace_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_first_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ireplace_first_copy</span></h2>
+<p>boost::algorithm::ireplace_first_copy &#8212; Replace first algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  ireplace_first_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                      <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> Range1T&gt;
+  <span class="type">SequenceT</span> ireplace_first_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                                <span class="bold"><strong>const</strong></span> Range2T &amp; Search,
+                                <span class="bold"><strong>const</strong></span> Range1T &amp; Format,
+                                <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351149"></a><h2>Description</h2>
+<p>Replace the first match of the search substring in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_last.html b/doc/html/ireplace_last.html
new file mode 100644
index 0000000000..c71d6cb906
--- /dev/null
+++ b/doc/html/ireplace_last.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ireplace_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_last_copy.html" title="Function ireplace_last_copy">
+<link rel="next" href="replace_nth_copy.html" title="Function replace_nth_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ireplace_last</span></h2>
+<p>boost::algorithm::ireplace_last &#8212; Replace last algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ireplace_last(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                     <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                     <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351932"></a><h2>Description</h2>
+<p>Replace the last match of the search string in the input with the format string.The input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference to the modified input </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_last_copy.html b/doc/html/ireplace_last_copy.html
new file mode 100644
index 0000000000..084378ccf4
--- /dev/null
+++ b/doc/html/ireplace_last_copy.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ireplace_last_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_last.html" title="Function template replace_last">
+<link rel="next" href="ireplace_last.html" title="Function template ireplace_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_last_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ireplace_last_copy</span></h2>
+<p>boost::algorithm::ireplace_last_copy &#8212; Replace last algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  ireplace_last_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                     <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format,
+                     <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> ireplace_last_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                               <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                               <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                               <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351783"></a><h2>Description</h2>
+<p>Replace the last match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_nth.html b/doc/html/ireplace_nth.html
new file mode 100644
index 0000000000..09a9c5af19
--- /dev/null
+++ b/doc/html/ireplace_nth.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template ireplace_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_nth_copy.html" title="Function ireplace_nth_copy">
+<link rel="next" href="replace_all_copy.html" title="Function replace_all_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template ireplace_nth</span></h2>
+<p>boost::algorithm::ireplace_nth &#8212; Replace nth algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> ireplace_nth(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                    <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth, <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352668"></a><h2>Description</h2>
+<p>Replace an Nth (zero-indexed) match of the search string in the input with the format string. Input sequence is modified in-place. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ireplace_nth_copy.html b/doc/html/ireplace_nth_copy.html
new file mode 100644
index 0000000000..838c2f0f09
--- /dev/null
+++ b/doc/html/ireplace_nth_copy.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function ireplace_nth_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_nth.html" title="Function template replace_nth">
+<link rel="next" href="ireplace_nth.html" title="Function template ireplace_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ireplace_nth_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function ireplace_nth_copy</span></h2>
+<p>boost::algorithm::ireplace_nth_copy &#8212; Replace nth algorithm ( case insensitive ). </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  ireplace_nth_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                    <span class="bold"><strong>const</strong></span> Range3T &amp; Format,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> ireplace_nth_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                              <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth, <span class="bold"><strong>const</strong></span> Range2T &amp; Format,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352500"></a><h2>Description</h2>
+<p>Replace an Nth (zero-indexed) match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_alnum.html b/doc/html/is_alnum.html
new file mode 100644
index 0000000000..d917bd86f6
--- /dev/null
+++ b/doc/html/is_alnum.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_alnum</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_space.html" title="Function is_space">
+<link rel="next" href="is_alpha.html" title="Function is_alpha">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_space.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_alpha.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_alnum"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_alnum</span></h2>
+<p>boost::algorithm::is_alnum &#8212; is_alnum predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_alnum(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313119"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::alnum</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_space.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_alpha.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_alpha.html b/doc/html/is_alpha.html
new file mode 100644
index 0000000000..601155a034
--- /dev/null
+++ b/doc/html/is_alpha.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_alpha</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_alnum.html" title="Function is_alnum">
+<link rel="next" href="is_cntrl.html" title="Function is_cntrl">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_alnum.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_cntrl.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_alpha"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_alpha</span></h2>
+<p>boost::algorithm::is_alpha &#8212; is_alpha predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_alpha(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313202"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::alpha</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_alnum.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_cntrl.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_any_of.html b/doc/html/is_any_of.html
new file mode 100644
index 0000000000..9f30883711
--- /dev/null
+++ b/doc/html/is_any_of.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template is_any_of</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_xdigit.html" title="Function is_xdigit">
+<link rel="next" href="is_from_range.html" title="Function template is_from_range">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_xdigit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_from_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_any_of"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template is_any_of</span></h2>
+<p>boost::algorithm::is_any_of &#8212; is_any_of predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> is_any_of(<span class="bold"><strong>const</strong></span> RangeT &amp; Set);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313958"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_any_of</code> predicate. The predicate holds if the input is included in the specified set of characters.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Set</span></dt>
+<dd><p>A set of characters to be recognized </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_any_of</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_xdigit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_from_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_classified.html b/doc/html/is_classified.html
new file mode 100644
index 0000000000..7c8082b0d9
--- /dev/null
+++ b/doc/html/is_classified.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_classified</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="to_upper.html" title="Function template to_upper">
+<link rel="next" href="is_space.html" title="Function is_space">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_upper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_space.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_classified"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_classified</span></h2>
+<p>boost::algorithm::is_classified &#8212; is_classified predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_classified(std::ctype_base::mask Type,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1312930"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate. This predicate holds if the input is of specified <code class="computeroutput">std::ctype</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+<dt><span class="term">Type</span></dt>
+<dd><p>A <code class="computeroutput">std::ctype</code> category </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_upper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_space.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_cntrl.html b/doc/html/is_cntrl.html
new file mode 100644
index 0000000000..469337db32
--- /dev/null
+++ b/doc/html/is_cntrl.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_cntrl</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_alpha.html" title="Function is_alpha">
+<link rel="next" href="is_digit.html" title="Function is_digit">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_alpha.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_digit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_cntrl"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_cntrl</span></h2>
+<p>boost::algorithm::is_cntrl &#8212; is_cntrl predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_cntrl(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313285"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::cntrl</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_alpha.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_digit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_digit.html b/doc/html/is_digit.html
new file mode 100644
index 0000000000..7c4c630622
--- /dev/null
+++ b/doc/html/is_digit.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_digit</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_cntrl.html" title="Function is_cntrl">
+<link rel="next" href="is_graph.html" title="Function is_graph">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_cntrl.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_graph.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_digit"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_digit</span></h2>
+<p>boost::algorithm::is_digit &#8212; is_digit predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_digit(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313368"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::digit</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_cntrl.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_graph.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_equal.html b/doc/html/is_equal.html
new file mode 100644
index 0000000000..85525a1d75
--- /dev/null
+++ b/doc/html/is_equal.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct is_equal</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1212611" title="Header &lt;boost/algorithm/string/compare.hpp&gt;">
+<link rel="prev" href="id719223.html" title="Function template operator!">
+<link rel="next" href="is_iequal.html" title="Struct is_iequal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id719223.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1212611"><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="is_iequal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_equal"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct is_equal</span></h2>
+<p>boost::algorithm::is_equal &#8212; is_equal functor </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"><strong>struct</strong></span> is_equal {
+
+  <span class="emphasis"><em>// <a href="is_equal.html#id927146-bb">public member functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="is_equal.html#id1214942-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> T1 &amp;, <span class="bold"><strong>const</strong></span> T2 &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314591"></a><h2>Description</h2>
+<p>Standard STL equal_to only handle comparison between arguments of the same type. This is a less restrictive version which wraps operator ==. </p>
+<div class="refsect2" lang="en">
+<a name="id1314599"></a><h3>
+<a name="id927146-bb"></a><code class="computeroutput">is_equal</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1214942-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> T1 &amp; Arg1, <span class="bold"><strong>const</strong></span> T2 &amp; Arg2) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Compare two operands for equality </p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id719223.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1212611"><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="is_iequal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_from_range.html b/doc/html/is_from_range.html
new file mode 100644
index 0000000000..36622e5b6d
--- /dev/null
+++ b/doc/html/is_from_range.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template is_from_range</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_any_of.html" title="Function template is_any_of">
+<link rel="next" href="id1076705.html" title="Function template operator&amp;&amp;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_any_of.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id1076705.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_from_range"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template is_from_range</span></h2>
+<p>boost::algorithm::is_from_range &#8212; is_from_range predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> is_from_range(CharT From, CharT To);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314041"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_from_range</code> predicate. The predicate holds if the input is included in the specified range. (i.e. From &lt;= Ch &lt;= To )</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">From</span></dt>
+<dd><p>The start of the range </p></dd>
+<dt><span class="term">To</span></dt>
+<dd><p>The end of the range </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_from_range</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_any_of.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="id1076705.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_graph.html b/doc/html/is_graph.html
new file mode 100644
index 0000000000..0cfd332934
--- /dev/null
+++ b/doc/html/is_graph.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_graph</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_digit.html" title="Function is_digit">
+<link rel="next" href="is_lower.html" title="Function is_lower">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_digit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_lower.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_graph"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_graph</span></h2>
+<p>boost::algorithm::is_graph &#8212; is_graph predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_graph(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313451"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::graph</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_digit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_lower.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_iequal.html b/doc/html/is_iequal.html
new file mode 100644
index 0000000000..ca57f66f41
--- /dev/null
+++ b/doc/html/is_iequal.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct is_iequal</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1212611" title="Header &lt;boost/algorithm/string/compare.hpp&gt;">
+<link rel="prev" href="is_equal.html" title="Struct is_equal">
+<link rel="next" href="FinderConcept.html" title="Struct template FinderConcept">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_equal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1212611"><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="FinderConcept.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_iequal"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct is_iequal</span></h2>
+<p>boost::algorithm::is_iequal &#8212; case insensitive version of is_equal </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"><strong>struct</strong></span> is_iequal {
+  <span class="emphasis"><em>// <a href="is_iequal.html#is_iequalconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="is_iequal.html#id1146369-bb">is_iequal</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+
+  <span class="emphasis"><em>// <a href="is_iequal.html#id1210577-bb">public member functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2&gt;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="is_iequal.html#id1213622-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> T1 &amp;, <span class="bold"><strong>const</strong></span> T2 &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1314801"></a><h2>Description</h2>
+<p>Case insensitive comparison predicate. Comparison is done using specified locales. </p>
+<div class="refsect2" lang="en">
+<a name="id1314808"></a><h3>
+<a name="is_iequalconstruct-copy-destruct"></a><code class="computeroutput">is_iequal</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1146369-bb"></a>is_iequal(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>locales used for comparison </p></dd>
+</dl>
+</div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1314862"></a><h3>
+<a name="id1210577-bb"></a><code class="computeroutput">is_iequal</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1213622-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> T1 &amp; Arg1, <span class="bold"><strong>const</strong></span> T2 &amp; Arg2) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Compare two operands. Case is ignored. </p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_equal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1212611"><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="FinderConcept.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_lower.html b/doc/html/is_lower.html
new file mode 100644
index 0000000000..0c017ddfdf
--- /dev/null
+++ b/doc/html/is_lower.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_lower</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_graph.html" title="Function is_graph">
+<link rel="next" href="is_print.html" title="Function is_print">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_graph.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_print.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_lower"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_lower</span></h2>
+<p>boost::algorithm::is_lower &#8212; is_lower predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_lower(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313534"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::lower</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_graph.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_print.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_print.html b/doc/html/is_print.html
new file mode 100644
index 0000000000..3797fa7f30
--- /dev/null
+++ b/doc/html/is_print.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_print</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_lower.html" title="Function is_lower">
+<link rel="next" href="is_punct.html" title="Function is_punct">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_lower.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_punct.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_print"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_print</span></h2>
+<p>boost::algorithm::is_print &#8212; is_print predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_print(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313616"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::print</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_lower.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_punct.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_punct.html b/doc/html/is_punct.html
new file mode 100644
index 0000000000..13532daa9d
--- /dev/null
+++ b/doc/html/is_punct.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_punct</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_print.html" title="Function is_print">
+<link rel="next" href="is_upper.html" title="Function is_upper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_print.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_upper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_punct"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_punct</span></h2>
+<p>boost::algorithm::is_punct &#8212; is_punct predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_punct(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313699"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::punct</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_print.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_upper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_recursive_wrapper.html b/doc/html/is_recursive_wrapper.html
new file mode 100644
index 0000000000..fc8b69ed48
--- /dev/null
+++ b/doc/html/is_recursive_wrapper.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template is_recursive_wrapper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1311990" title="Header &lt;boost/variant/recursive_wrapper.hpp&gt;">
+<link rel="prev" href="recursive_wrapper.html" title="Class template recursive_wrapper">
+<link rel="next" href="unwrap_recursive_wrapper.html" title="Class template unwrap_recursive_wrapper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="unwrap_recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_recursive_wrapper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template is_recursive_wrapper</span></h2>
+<p>boost::is_recursive_wrapper &#8212; <p>Determines whether the specified type is a specialization of
+ <code class="computeroutput">recursive_wrapper</code>.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> is_recursive_wrapper {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> type;
+
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="bold"><strong>bool</strong></span> value = unspecified;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1667930"></a><h2>Description</h2>
+<p>Value is true iff <code class="computeroutput">T</code> is a specialization of
+ <code class="computeroutput"><a href="recursive_wrapper.html" title="Class template recursive_wrapper">recursive_wrapper</a></code>.</p>
+<p><span class="bold"><strong>Note</strong></span>:
+ <code class="computeroutput">is_recursive_wrapper</code> is a model of
+ <a href="../../libs/mpl/index.html" target="_top">MPL</a>'s
+ <span class="emphasis"><em>IntegralConstant</em></span> concept.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="unwrap_recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_reference_wrapper.html b/doc/html/is_reference_wrapper.html
new file mode 100644
index 0000000000..95fc973b89
--- /dev/null
+++ b/doc/html/is_reference_wrapper.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template is_reference_wrapper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="ref/reference.html#header.boost.ref.hpp" title="Header &lt;boost/ref.hpp&gt;">
+<link rel="prev" href="reference_wrapper.html" title="Class template reference_wrapper">
+<link rel="next" href="unwrap_reference.html" title="Class template unwrap_reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="unwrap_reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_reference_wrapper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template is_reference_wrapper</span></h2>
+<p>boost::is_reference_wrapper &#8212; Determine if a type <code class="computeroutput">T</code> is an instantiation of <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> is_reference_wrapper {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="bold"><strong>bool</strong></span> value = unspecified;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1279683"></a><h2>Description</h2>
+<p>The <code class="computeroutput">value</code> static
+ constant will be <code class="computeroutput">true</code> iff the
+ type <code class="computeroutput">T</code> is a specialization of
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>.</p>
+</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 © 1999, 2000 Jaakko Järvi<br>Copyright © 2001, 2002 Peter Dimov<br>Copyright © 2002 David Abrahams</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="unwrap_reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_space.html b/doc/html/is_space.html
new file mode 100644
index 0000000000..f1646298ec
--- /dev/null
+++ b/doc/html/is_space.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_space</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_classified.html" title="Function is_classified">
+<link rel="next" href="is_alnum.html" title="Function is_alnum">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_classified.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_alnum.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_space"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_space</span></h2>
+<p>boost::algorithm::is_space &#8212; is_space predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_space(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313036"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::space</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_classified.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_alnum.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_upper.html b/doc/html/is_upper.html
new file mode 100644
index 0000000000..4c940dcacd
--- /dev/null
+++ b/doc/html/is_upper.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_upper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_punct.html" title="Function is_punct">
+<link rel="next" href="is_xdigit.html" title="Function is_xdigit">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_punct.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_xdigit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_upper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_upper</span></h2>
+<p>boost::algorithm::is_upper &#8212; is_upper predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_upper(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313782"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::upper</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_punct.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_xdigit.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/is_xdigit.html b/doc/html/is_xdigit.html
new file mode 100644
index 0000000000..fcbe8f2f8d
--- /dev/null
+++ b/doc/html/is_xdigit.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function is_xdigit</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">
+<link rel="prev" href="is_upper.html" title="Function is_upper">
+<link rel="next" href="is_any_of.html" title="Function template is_any_of">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_upper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_any_of.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="is_xdigit"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function is_xdigit</span></h2>
+<p>boost::algorithm::is_xdigit &#8212; is_xdigit predicate </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="type"><span class="emphasis"><em>unspecified</em></span></span> is_xdigit(<span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1313865"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">is_classified</code> predicate for the <code class="computeroutput">ctype_base::xdigit</code> category.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">is_classified</code> predicate </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_upper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1174262"><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="is_any_of.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/iso_extended_format.html b/doc/html/iso_extended_format.html
new file mode 100644
index 0000000000..f8976de246
--- /dev/null
+++ b/doc/html/iso_extended_format.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template iso_extended_format</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941603" title="Header &lt;boost/date_time/iso_format.hpp&gt;">
+<link rel="prev" href="iso_format.html" title="Class template iso_format">
+<link rel="next" href="utc_adjustment.html" title="Class template utc_adjustment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="utc_adjustment.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="iso_extended_format"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template iso_extended_format</span></h2>
+<p>boost::date_time::iso_extended_format &#8212; Extended format uses seperators YYYY-MM-DD. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> iso_extended_format
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::iso_format_base&lt; charT &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="iso_extended_format.html#id1037298-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="iso_extended_format.html#id1037303-bb">has_date_sep_chars</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1107970"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1107974"></a><h3>
+<a name="id1037298-bb"></a><code class="computeroutput">iso_extended_format</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1037303-bb"></a>has_date_sep_chars() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="utc_adjustment.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/iso_format.html b/doc/html/iso_format.html
new file mode 100644
index 0000000000..f2573d02de
--- /dev/null
+++ b/doc/html/iso_format.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template iso_format</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941603" title="Header &lt;boost/date_time/iso_format.hpp&gt;">
+<link rel="prev" href="id1045709-bb.html" title="Class iso_format_base&lt;wchar_t&gt;">
+<link rel="next" href="iso_extended_format.html" title="Class template iso_extended_format">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1045709-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="iso_extended_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="iso_format"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template iso_format</span></h2>
+<p>boost::date_time::iso_format &#8212; Format description for iso normal YYYYMMDD. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> iso_format : <span class="bold"><strong>public</strong></span> boost::date_time::iso_format_base&lt; charT &gt; {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="iso_format.html#id1073908-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="iso_format.html#id1073913-bb">has_date_sep_chars</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1107849"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1107852"></a><h3>
+<a name="id1073908-bb"></a><code class="computeroutput">iso_format</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1073913-bb"></a>has_date_sep_chars() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1045709-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="iso_extended_format.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/iso_format_base.html b/doc/html/iso_format_base.html
new file mode 100644
index 0000000000..bf33e031ee
--- /dev/null
+++ b/doc/html/iso_format_base.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template iso_format_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941603" title="Header &lt;boost/date_time/iso_format.hpp&gt;">
+<link rel="prev" href="id977316.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="id1045709-bb.html" title="Class iso_format_base&lt;wchar_t&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id977316.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="id1045709-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="iso_format_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template iso_format_base</span></h2>
+<p>boost::date_time::iso_format_base &#8212; Class to provide common iso formatting spec. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> iso_format_base {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="iso_format_base.html#id941638-bb">public static functions</a></em></span>
+  <span class="type">month_format_spec</span> <a href="iso_format_base.html#id941643-bb">month_format</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="iso_format_base.html#id941661-bb">not_a_date</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="iso_format_base.html#id901516-bb">pos_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="iso_format_base.html#id858358-bb">neg_infinity</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1104476-bb">year_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1104493-bb">month_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id861966-bb">day_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id801558-bb">hour_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id801576-bb">minute_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1002692-bb">second_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id862380-bb">period_start_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id873002-bb">time_start_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1111069-bb">week_start_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1111086-bb">period_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1109328-bb">time_sep_char</a>() ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1109345-bb">fractional_time_sep_char</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="iso_format_base.html#id972319-bb">is_component_sep</a>(charT) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="iso_format_base.html#id973177-bb">is_fractional_time_sep</a>(charT) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="iso_format_base.html#id895461-bb">is_timezone_sep</a>(charT) ;
+  <span class="type">charT</span> <a href="iso_format_base.html#id1112159-bb">element_sep_char</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1106514"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1106517"></a><h3>
+<a name="id941638-bb"></a><code class="computeroutput">iso_format_base</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">month_format_spec</span> <a name="id941643-bb"></a>month_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id941661-bb"></a>not_a_date() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id901516-bb"></a>pos_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id858358-bb"></a>neg_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1104476-bb"></a>year_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1104493-bb"></a>month_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id861966-bb"></a>day_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id801558-bb"></a>hour_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id801576-bb"></a>minute_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1002692-bb"></a>second_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id862380-bb"></a>period_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id873002-bb"></a>time_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1111069-bb"></a>week_start_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1111086-bb"></a>period_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1109328-bb"></a>time_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1109345-bb"></a>fractional_time_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id972319-bb"></a>is_component_sep(charT sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id973177-bb"></a>is_fractional_time_sep(charT sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id895461-bb"></a>is_timezone_sep(charT sep) ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1112159-bb"></a>element_sep_char() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1106906"></a><h3>Specializations</h3>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="id1045709-bb.html" title="Class iso_format_base&lt;wchar_t&gt;">Class iso_format_base&lt;wchar_t&gt;</a></p></li></ul></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id977316.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941603"><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="id1045709-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/istarts_with.html b/doc/html/istarts_with.html
new file mode 100644
index 0000000000..909463e7c7
--- /dev/null
+++ b/doc/html/istarts_with.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template istarts_with</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="starts_with.html" title="Function starts_with">
+<link rel="next" href="ends_with.html" title="Function ends_with">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="starts_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="ends_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="istarts_with"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template istarts_with</span></h2>
+<p>boost::algorithm::istarts_with &#8212; 'Starts with' predicate ( case insensitive ) </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> istarts_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1326706"></a><h2>Description</h2>
+<p>This predicate holds when the test string is a prefix of the Input. In other words, if the input starts with the test. Elements are compared case insensitively.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for case insensitive comparison </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="starts_with.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="ends_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda.html b/doc/html/lambda.html
index 981656dc06..9419aa7e74 100644
--- a/doc/html/lambda.html
+++ b/doc/html/lambda.html
@@ -1,10 +1,177 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/lambda.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/lambda.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/lambda.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 6. Boost.Lambda</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="hash/acknowledgements.html" title=" Acknowledgements">
+<link rel="next" href="lambda/getting_started.html" title="Getting Started">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash/acknowledgements.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="lambda/getting_started.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="lambda"></a>Chapter 6. Boost.Lambda</h2></div>
+<div><div class="author">
+<h3 class="author">
+<span class="firstname">Jaakko</span> <span class="surname">Järvi</span>
+</h3>
+<code class="email">&lt;<a href="mailto:jarvi%20at%20cs%20tamu%20edu">jarvi at cs tamu edu</a>&gt;</code>
+</div></div>
+<div><p class="copyright">Copyright © 1999-2004 Jaakko Järvi, Gary Powell</p></div>
+<div><div class="legalnotice">
+<a name="id1222303"></a><p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="lambda.html#introduction">In a nutshell</a></span></dt>
+<dt><span class="section"><a href="lambda/getting_started.html">Getting Started</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/getting_started.html#id1222408">Installing the library</a></span></dt>
+<dt><span class="section"><a href="lambda/getting_started.html#id1222668">Conventions used in this document</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/s03.html">Introduction</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/s03.html#id1222698">Motivation</a></span></dt>
+<dt><span class="section"><a href="lambda/s03.html#id1222933">Introduction to lambda expressions</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/using_library.html">Using the library</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/using_library.html#lambda.introductory_examples">Introductory Examples</a></span></dt>
+<dt><span class="section"><a href="lambda/using_library.html#lambda.parameter_and_return_types">Parameter and return types of lambda functors</a></span></dt>
+<dt><span class="section"><a href="lambda/using_library.html#lambda.actual_arguments_to_lambda_functors">About actual arguments to lambda functors</a></span></dt>
+<dt><span class="section"><a href="lambda/using_library.html#lambda.storing_bound_arguments">Storing bound arguments in lambda functions</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/le_in_details.html">Lambda expressions in details</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.placeholders">Placeholders</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.operator_expressions">Operator expressions</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.bind_expressions">Bind expressions</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.overriding_deduced_return_type">Overriding the deduced return type</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.delaying_constants_and_variables">Delaying constants and variables</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.lambda_expressions_for_control_structures">Lambda expressions for control structures</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.exceptions">Exceptions</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.construction_and_destruction">Construction and destruction</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#id1243846">Special lambda expressions</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#id1244283">Casts, sizeof and typeid</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html#lambda.nested_stl_algorithms">Nesting STL algorithm invocations</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/extending.html">Extending return type deduction system</a></span></dt>
+<dt><span class="section"><a href="lambda/s07.html">Practical considerations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/s07.html#id1245402">Performance</a></span></dt>
+<dt><span class="section"><a href="lambda/s07.html#id1245714">About compiling</a></span></dt>
+<dt><span class="section"><a href="lambda/s07.html#id1245749">Portability</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/s08.html">Relation to other Boost libraries</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda/s08.html#id1246004">Boost Function</a></span></dt>
+<dt><span class="section"><a href="lambda/s08.html#id1246081">Boost Bind</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="lambda/s09.html">Contributors</a></span></dt>
+<dt><span class="appendix"><a href="apa.html">A. Rationale for some of the design decisions</a></span></dt>
+<dd><dl><dt><span class="section"><a href="apa.html#lambda.why_weak_arity">
+Lambda functor arity
+</a></span></dt></dl></dd>
+<dt><span class="bibliography"><a href="lambda.html#id1246328">Bibliography</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="introduction"></a>In a nutshell</h3></div></div></div>
+<p>
+
+ The Boost Lambda Library (BLL in the sequel) is a C++ template
+ library, which implements form of <span class="emphasis"><em>lambda abstractions</em></span> for C++.
+The term originates from functional programming and lambda calculus, where a lambda abstraction defines an unnamed function.
+ The primary motivation for the BLL is to provide flexible and
+ convenient means to define unnamed function objects for STL algorithms.
+In explaining what the library is about, a line of code says more than a thousand words; the
+ following line outputs the elements of some STL container
+ <code class="literal">a</code> separated by spaces:
+
+ </p>
+<pre class="programlisting">for_each(a.begin(), a.end(), std::cout &lt;&lt; _1 &lt;&lt; ' ');</pre>
+<p>
+
+ The expression <code class="literal">std::cout &lt;&lt; _1 &lt;&lt; ' '</code> defines a unary function object.
+ The variable <code class="literal">_1</code> is the parameter of this function, a <span class="emphasis"><em>placeholder</em></span> for the actual argument.
+ Within each iteration of <code class="literal">for_each</code>, the function is
+ called with an element of <code class="literal">a</code> as the actual argument.
+ This actual argument is substituted for the placeholder, and the &#8220;<span class="quote">body</span>&#8221; of the function is evaluated.
+ </p>
+<p>The essence of BLL is letting you define small unnamed function objects, such as the one above, directly on the call site of an STL algorithm.
+ </p>
+</div>
+<div class="bibliography">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id1246328"></a>Bibliography</h2></div></div></div>
+<div class="biblioentry">
+<a name="cit:stepanov:94"></a><p>[<span class="abbrev">STL94</span>] <span class="authorgroup"><span class="firstname">A. A.</span> <span class="surname">Stepanov</span> and <span class="firstname">M.</span> <span class="surname">Lee</span>. </span><span class="title"><i>The Standard Template Library</i>. </span><span class="orgname">Hewlett-Packard Laboratories. </span><span class="pubdate">1994. </span><span class="bibliomisc"><a href="http://www.hpl.hp.com/techreports" target="_top">www.hpl.hp.com/techreports</a>. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:sgi:02"></a><p>[<span class="abbrev">SGI02</span>] <span class="title"><i>The SGI Standard Template Library</i>. </span><span class="pubdate">2002. </span><span class="bibliomisc"><a href="http://www.sgi.com/tech/stl/" target="_top">www.sgi.com/tech/stl/</a>. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:c++:98"></a><p>[<span class="abbrev">C++98</span>] <span class="title"><i>International Standard, Programming Languages &#8211; C++</i>. </span><span class="subtitle">ISO/IEC:14882. </span><span class="pubdate">1998. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:jarvi:99"></a><p>[<span class="abbrev">Jär99</span>] <span class="articleinfo"><span class="author"><span class="firstname">Jaakko</span> <span class="surname">Järvi</span>. </span><span class="title"><i>C++ Function Object Binders Made Easy</i>. </span>. </span><span class="title"><i>Lecture Notes in Computer Science</i>. </span><span class="volumenum">1977. </span><span class="publishername">Springer. </span><span class="pubdate">2000. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:jarvi:00"></a><p>[<span class="abbrev">Jär00</span>] <span class="author"><span class="firstname">Jaakko</span> <span class="surname">Järvi</span>. </span><span class="author"><span class="firstname">Gary</span> <span class="surname">Powell</span>. </span><span class="title"><i>The Lambda Library : Lambda Abstraction in C++</i>. </span><span class="orgname">Turku Centre for Computer Science. </span><span class="bibliomisc">Technical Report . </span><span class="issuenum">378. </span><span class="pubdate">2000. </span><span class="bibliomisc"><a href="http://www.tucs.fi/Publications/techreports/TR378.php" target="_top">www.tucs.fi/publications</a>. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:jarvi:01"></a><p>[<span class="abbrev">Jär01</span>] <span class="author"><span class="firstname">Jaakko</span> <span class="surname">Järvi</span>. </span><span class="author"><span class="firstname">Gary</span> <span class="surname">Powell</span>. </span><span class="title"><i>The Lambda Library : Lambda Abstraction in C++</i>. </span><span class="confgroup"><span class="conftitle">Second Workshop on C++ Template Programming. </span><span class="address">Tampa Bay, OOPSLA'01. </span>. </span><span class="pubdate">2001. </span><span class="bibliomisc"><a href="http://www.oonumerics.org/tmpw01/" target="_top">www.oonumerics.org/tmpw01/</a>. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:jarvi:03"></a><p>[<span class="abbrev">Jär03</span>] <span class="articleinfo"><span class="author"><span class="firstname">Jaakko</span> <span class="surname">Järvi</span>. </span><span class="author"><span class="firstname">Gary</span> <span class="surname">Powell</span>. </span><span class="author"><span class="firstname">Andrew</span> <span class="surname">Lumsdaine</span>. </span><span class="title"><i>The Lambda Library : unnamed functions in C++</i>. </span>. </span><span class="title"><i>Software - Practice and Expreience</i>. </span><span class="volumenum">33:259-291. </span><span class="pubdate">2003. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:boost::tuple"></a><p>[<span class="abbrev">tuple</span>] <span class="title"><i>The Boost Tuple Library</i>. </span><span class="bibliomisc"><a href="http://www.boost.org/libs/tuple/doc/tuple_users_guide.html" target="_top">www.boost.org/libs/tuple/doc/tuple_users_guide.html</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:boost::type_traits"></a><p>[<span class="abbrev">type_traits</span>] <span class="title"><i>The Boost type_traits</i>. </span><span class="bibliomisc"><a href="http://www.boost.org/libs/type_traits/index.htm" target="_top">www.boost.org/libs/type_traits/</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:boost::ref"></a><p>[<span class="abbrev">ref</span>] <span class="title"><i>Boost ref</i>. </span><span class="bibliomisc"><a href="http://www.boost.org/libs/bind/ref.html" target="_top">www.boost.org/libs/bind/ref.html</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:boost::bind"></a><p>[<span class="abbrev">bind</span>] <span class="title"><i>Boost Bind Library</i>. </span><span class="bibliomisc"><a href="http://www.boost.org/libs/bind/bind.html" target="_top">www.boost.org/libs/bind/bind.html</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:boost::function"></a><p>[<span class="abbrev">function</span>] <span class="title"><i>Boost Function Library</i>. </span><span class="bibliomisc"><a href="http://www.boost.org/libs/function/" target="_top">www.boost.org/libs/function/</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+<div class="biblioentry">
+<a name="cit:fc++"></a><p>[<span class="abbrev">fc++</span>] <span class="title"><i>The FC++ library: Functional Programming in C++</i>. </span><span class="author"><span class="firstname">Yannis</span> <span class="surname">Smaragdakis</span>. </span><span class="author"><span class="firstname">Brian</span> <span class="surname">McNamara</span>. </span><span class="bibliomisc"><a href="http://www.cc.gatech.edu/~yannis/fc++/" target="_top">www.cc.gatech.edu/~yannis/fc++/</a>. </span><span class="pubdate">2002. </span></p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: November 28, 2004 at 03:29:16 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hash/acknowledgements.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="lambda/getting_started.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/lambda/extending.html b/doc/html/lambda/extending.html
new file mode 100644
index 0000000000..d7780d4ba6
--- /dev/null
+++ b/doc/html/lambda/extending.html
@@ -0,0 +1,421 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Extending return type deduction system</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="le_in_details.html" title="Lambda expressions in details">
+<link rel="next" href="s07.html" title="Practical considerations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="le_in_details.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s07.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="lambda.extending"></a>Extending return type deduction system</h3></div></div></div>
+<p>
+
+In this section, we explain how to extend the return type deduction system
+to cover user defined operators.
+
+In many cases this is not necessary,
+as the BLL defines default return types for operators.
+
+For example, the default return type for all comparison operators is
+<code class="literal">bool</code>, and as long as the user defined comparison operators
+have a bool return type, there is no need to write new specializations
+for the return type deduction classes.
+
+Sometimes this cannot be avoided, though.
+
+</p>
+<p>
+The overloadable user defined operators are either unary or binary.
+
+For each arity, there are two traits templates that define the
+return types of the different operators.
+
+Hence, the return type system can be extended by providing more
+specializations for these templates.
+
+The templates for unary functors are
+
+<code class="literal">
+plain_return_type_1&lt;Action, A&gt;
+</code>
+
+and
+
+<code class="literal">
+return_type_1&lt;Action, A&gt;
+</code>, and
+
+<code class="literal">
+plain_return_type_2&lt;Action, A, B&gt;
+</code>
+
+and
+
+<code class="literal">
+return_type_2&lt;Action, A, B&gt;
+</code>
+
+respectively for binary functors.
+
+</p>
+<p>
+The first parameter (<code class="literal">Action</code>) to all these templates
+is the <span class="emphasis"><em>action</em></span> class, which specifies the operator.
+
+Operators with similar return type rules are grouped together into
+<span class="emphasis"><em>action groups</em></span>,
+and only the action class and action group together define the operator
+unambiguously.
+
+As an example, the action type
+<code class="literal">arithmetic_action&lt;plus_action&gt;</code> stands for
+<code class="literal">operator+</code>.
+
+The complete listing of different action types is shown in
+<a href="extending.html#table:actions" title="Table 6.2. Action types">Table 6.2, &#8220;Action types&#8221;</a>.
+</p>
+<p>
+The latter parameters, <code class="literal">A</code> in the unary case,
+or <code class="literal">A</code> and <code class="literal">B</code> in the binary case,
+stand for the argument types of the operator call.
+
+The two sets of templates,
+<code class="literal">plain_return_type_<em class="parameter"><code>n</code></em></code> and
+<code class="literal">return_type_<em class="parameter"><code>n</code></em></code>
+(<em class="parameter"><code>n</code></em> is 1 or 2) differ in the way how parameter types
+are presented to them.
+
+For the former templates, the parameter types are always provided as
+non-reference types, and do not have const or volatile qualifiers.
+
+This makes specializing easy, as commonly one specialization for each
+user defined operator, or operator group, is enough.
+
+On the other hand, if a particular operator is overloaded for different
+cv-qualifications of the same argument types,
+and the return types of these overloaded versions differ, a more fine-grained control is needed.
+
+Hence, for the latter templates, the parameter types preserve the
+cv-qualifiers, and are non-reference types as well.
+
+The downside is, that for an overloaded set of operators of the
+kind described above, one may end up needing up to
+16 <code class="literal">return_type_2</code> specializations.
+</p>
+<p>
+Suppose the user has overloaded the following operators for some user defined
+types <code class="literal">X</code>, <code class="literal">Y</code> and <code class="literal">Z</code>:
+
+</p>
+<pre class="programlisting">
+Z operator+(const X&amp;, const Y&amp;);
+Z operator-(const X&amp;, const Y&amp;);
+</pre>
+<p>
+
+Now, one can add a specialization stating, that if the left hand argument
+is of type <code class="literal">X</code>, and the right hand one of type
+<code class="literal">Y</code>, the return type of all such binary arithmetic
+operators is <code class="literal">Z</code>:
+
+</p>
+<pre class="programlisting">
+namespace boost {
+namespace lambda {
+
+template&lt;class Act&gt;
+struct plain_return_type_2&lt;arithmetic_action&lt;Act&gt;, X, Y&gt; {
+ typedef Z type;
+};
+
+}
+}
+</pre>
+<p>
+
+Having this specialization defined, BLL is capable of correctly
+deducing the return type of the above two operators.
+
+Note, that the specializations must be in the same namespace,
+<code class="literal">::boost::lambda</code>, with the primary template.
+
+For brevity, we do not show the namespace definitions in the examples below.
+</p>
+<p>
+It is possible to specialize on the level of an individual operator as well,
+in addition to providing a specialization for a group of operators.
+Say, we add a new arithmetic operator for argument types <code class="literal">X</code>
+and <code class="literal">Y</code>:
+
+</p>
+<pre class="programlisting">
+X operator*(const X&amp;, const Y&amp;);
+</pre>
+<p>
+
+Our first rule for all arithmetic operators specifies that the return
+type of this operator is <code class="literal">Z</code>,
+which obviously is not the case.
+Hence, we provide a new rule for the multiplication operator:
+
+</p>
+<pre class="programlisting">
+template&lt;&gt;
+struct plain_return_type_2&lt;arithmetic_action&lt;multiply_action&gt;, X, Y&gt; {
+ typedef X type;
+};
+</pre>
+<p>
+The specializations can define arbitrary mappings from the argument types
+to the return type.
+
+Suppose we have some mathematical vector type, templated on the element type:
+
+</p>
+<pre class="programlisting">
+template &lt;class T&gt; class my_vector;
+</pre>
+<p>
+
+Suppose the addition operator is defined between any two
+<code class="literal">my_vector</code> instantiations,
+as long as the addition operator is defined between their element types.
+
+Furthermore, the element type of the resulting <code class="literal">my_vector</code>
+is the same as the result type of the addition between the element types.
+
+E.g., adding <code class="literal">my_vector&lt;int&gt;</code> and
+<code class="literal">my_vector&lt;double&gt;</code> results in
+<code class="literal">my_vector&lt;double&gt;</code>.
+
+The BLL has traits classes to perform the implicit built-in and standard
+type conversions between integral, floating point, and complex classes.
+
+Using BLL tools, the addition operator described above can be defined as:
+
+</p>
+<pre class="programlisting">
+template&lt;class A, class B&gt;
+my_vector&lt;typename return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type&gt;
+operator+(const my_vector&lt;A&gt;&amp; a, const my_vector&lt;B&gt;&amp; b)
+{
+ typedef typename
+ return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type res_type;
+ return my_vector&lt;res_type&gt;();
+}
+</pre>
+<p>
+To allow BLL to deduce the type of <code class="literal">my_vector</code>
+additions correctly, we can define:
+
+</p>
+<pre class="programlisting">
+template&lt;class A, class B&gt;
+class plain_return_type_2&lt;arithmetic_action&lt;plus_action&gt;,
+ my_vector&lt;A&gt;, my_vector&lt;B&gt; &gt; {
+ typedef typename
+ return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type res_type;
+public:
+ typedef my_vector&lt;res_type&gt; type;
+};
+</pre>
+<p>
+Note, that we are reusing the existing specializations for the
+BLL <code class="literal">return_type_2</code> template,
+which require that the argument types are references.
+</p>
+<div class="table">
+<a name="table:actions"></a><p class="title"><b>Table 6.2. Action types</b></p>
+<table class="table" summary="Action types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><code class="literal">+</code></td>
+<td><code class="literal">arithmetic_action&lt;plus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">-</code></td>
+<td><code class="literal">arithmetic_action&lt;minus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">*</code></td>
+<td><code class="literal">arithmetic_action&lt;multiply_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">/</code></td>
+<td><code class="literal">arithmetic_action&lt;divide_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">%</code></td>
+<td><code class="literal">arithmetic_action&lt;remainder_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">+</code></td>
+<td><code class="literal">unary_arithmetic_action&lt;plus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">-</code></td>
+<td><code class="literal">unary_arithmetic_action&lt;minus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&amp;</code></td>
+<td><code class="literal">bitwise_action&lt;and_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">|</code></td>
+<td><code class="literal">bitwise_action&lt;or_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">~</code></td>
+<td><code class="literal">bitwise_action&lt;not_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">^</code></td>
+<td><code class="literal">bitwise_action&lt;xor_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&lt;&lt;</code></td>
+<td><code class="literal">bitwise_action&lt;leftshift_action_no_stream&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&gt;&gt;</code></td>
+<td><code class="literal">bitwise_action&lt;rightshift_action_no_stream&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&amp;&amp;</code></td>
+<td><code class="literal">logical_action&lt;and_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">||</code></td>
+<td><code class="literal">logical_action&lt;or_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">!</code></td>
+<td><code class="literal">logical_action&lt;not_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&lt;</code></td>
+<td><code class="literal">relational_action&lt;less_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&gt;</code></td>
+<td><code class="literal">relational_action&lt;greater_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&lt;=</code></td>
+<td><code class="literal">relational_action&lt;lessorequal_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&gt;=</code></td>
+<td><code class="literal">relational_action&lt;greaterorequal_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">==</code></td>
+<td><code class="literal">relational_action&lt;equal_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">!=</code></td>
+<td><code class="literal">relational_action&lt;notequal_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">+=</code></td>
+<td><code class="literal">arithmetic_assignment_action&lt;plus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">-=</code></td>
+<td><code class="literal">arithmetic_assignment_action&lt;minus_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">*=</code></td>
+<td><code class="literal">arithmetic_assignment_action&lt;multiply_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">/=</code></td>
+<td><code class="literal">arithmetic_assignment_action&lt;divide_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">%=</code></td>
+<td><code class="literal">arithmetic_assignment_action&lt;remainder_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&amp;=</code></td>
+<td><code class="literal">bitwise_assignment_action&lt;and_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">=|</code></td>
+<td><code class="literal">bitwise_assignment_action&lt;or_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">^=</code></td>
+<td><code class="literal">bitwise_assignment_action&lt;xor_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&lt;&lt;=</code></td>
+<td><code class="literal">bitwise_assignment_action&lt;leftshift_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&gt;&gt;=</code></td>
+<td><code class="literal">bitwise_assignment_action&lt;rightshift_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">++</code></td>
+<td><code class="literal">pre_increment_decrement_action&lt;increment_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">--</code></td>
+<td><code class="literal">pre_increment_decrement_action&lt;decrement_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">++</code></td>
+<td><code class="literal">post_increment_decrement_action&lt;increment_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">--</code></td>
+<td><code class="literal">post_increment_decrement_action&lt;decrement_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">&amp;</code></td>
+<td><code class="literal">other_action&lt;address_of_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">*</code></td>
+<td><code class="literal">other_action&lt;contents_of_action&gt;</code></td>
+</tr>
+<tr>
+<td><code class="literal">,</code></td>
+<td><code class="literal">other_action&lt;comma_action&gt;</code></td>
+</tr>
+</tbody>
+</table>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="le_in_details.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s07.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/getting_started.html b/doc/html/lambda/getting_started.html
new file mode 100644
index 0000000000..d7007eb21b
--- /dev/null
+++ b/doc/html/lambda/getting_started.html
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Getting Started</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="next" href="s03.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../lambda.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s03.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="lambda.getting_started"></a>Getting Started</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="getting_started.html#id1222408">Installing the library</a></span></dt>
+<dt><span class="section"><a href="getting_started.html#id1222668">Conventions used in this document</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1222408"></a>Installing the library</h4></div></div></div>
+<p>
+ The library consists of include files only, hence there is no
+ installation procedure. The <code class="literal">boost</code> include directory
+ must be on the include path.
+ There are a number of include files that give different functionality:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><code class="filename">lambda/lambda.hpp</code> defines lambda expressions for different C++
+ operators, see <a href="le_in_details.html#lambda.operator_expressions" title="Operator expressions">the section called &#8220;Operator expressions&#8221;</a>.
+ </p></li>
+<li><p><code class="filename">lambda/bind.hpp</code> defines <code class="literal">bind</code> functions for up to 9 arguments, see <a href="le_in_details.html#lambda.bind_expressions" title="Bind expressions">the section called &#8220;Bind expressions&#8221;</a>.</p></li>
+<li><p><code class="filename">lambda/if.hpp</code> defines lambda function equivalents for if statements and the conditional operator, see <a href="le_in_details.html#lambda.lambda_expressions_for_control_structures" title="Lambda expressions for control structures">the section called &#8220;Lambda expressions for control structures&#8221;</a> (includes <code class="filename">lambda.hpp</code>).
+ </p></li>
+<li><p><code class="filename">lambda/loops.hpp</code> defines lambda function equivalent for looping constructs, see <a href="le_in_details.html#lambda.lambda_expressions_for_control_structures" title="Lambda expressions for control structures">the section called &#8220;Lambda expressions for control structures&#8221;</a>.
+ </p></li>
+<li><p><code class="filename">lambda/switch.hpp</code> defines lambda function equivalent for the switch statement, see <a href="le_in_details.html#lambda.lambda_expressions_for_control_structures" title="Lambda expressions for control structures">the section called &#8220;Lambda expressions for control structures&#8221;</a>.
+ </p></li>
+<li><p><code class="filename">lambda/construct.hpp</code> provides tools for writing lambda expressions with constructor, destructor, new and delete invocations, see <a href="le_in_details.html#lambda.construction_and_destruction" title="Construction and destruction">the section called &#8220;Construction and destruction&#8221;</a> (includes <code class="filename">lambda.hpp</code>).
+ </p></li>
+<li><p><code class="filename">lambda/casts.hpp</code> provides lambda versions of different casts, as well as <code class="literal">sizeof</code> and <code class="literal">typeid</code>, see <a href="le_in_details.html#lambda.cast_expressions" title="
+Cast expressions
+">the section called &#8220;
+Cast expressions
+&#8221;</a>.
+ </p></li>
+<li><p><code class="filename">lambda/exceptions.hpp</code> gives tools for throwing and catching
+ exceptions within lambda functions, <a href="le_in_details.html#lambda.exceptions" title="Exceptions">the section called &#8220;Exceptions&#8221;</a> (includes
+ <code class="filename">lambda.hpp</code>).
+ </p></li>
+<li><p><code class="filename">lambda/algorithm.hpp</code> and <code class="filename">lambda/numeric.hpp</code> (cf. standard <code class="filename">algortihm</code> and <code class="filename">numeric</code> headers) allow nested STL algorithm invocations, see <a href="le_in_details.html#lambda.nested_stl_algorithms" title="Nesting STL algorithm invocations">the section called &#8220;Nesting STL algorithm invocations&#8221;</a>.
+ </p></li>
+</ul></div>
+<p>
+
+ Any other header files in the package are for internal use.
+ Additionally, the library depends on two other Boost Libraries, the
+ <span class="emphasis"><em>Tuple</em></span>[<a href="../lambda.html#cit:boost::tuple" title="[tuple]"><span class="abbrev">tuple</span></a>] and the <span class="emphasis"><em>type_traits</em></span>[<a href="../lambda.html#cit:boost::type_traits" title="[type_traits]"><span class="abbrev">type_traits</span></a>] libraries, and on the <code class="filename">boost/ref.hpp</code> header.
+ </p>
+<p>
+ All definitions are placed in the namespace <code class="literal">boost::lambda</code> and its subnamespaces.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1222668"></a>Conventions used in this document</h4></div></div></div>
+<p>In most code examples, we omit the namespace prefixes for names in the <code class="literal">std</code> and <code class="literal">boost::lambda</code> namespaces.
+Implicit using declarations
+</p>
+<pre class="programlisting">
+using namespace std;
+using namespace boost::lambda;
+</pre>
+<p>
+are assumed to be in effect.
+</p>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../lambda.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s03.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/le_in_details.html b/doc/html/lambda/le_in_details.html
new file mode 100644
index 0000000000..18ac108c5e
--- /dev/null
+++ b/doc/html/lambda/le_in_details.html
@@ -0,0 +1,1614 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Lambda expressions in details</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="using_library.html" title="Using the library">
+<link rel="next" href="extending.html" title="Extending return type deduction system">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using_library.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="extending.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="lambda.le_in_details"></a>Lambda expressions in details</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#lambda.placeholders">Placeholders</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.operator_expressions">Operator expressions</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.bind_expressions">Bind expressions</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.overriding_deduced_return_type">Overriding the deduced return type</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.delaying_constants_and_variables">Delaying constants and variables</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.lambda_expressions_for_control_structures">Lambda expressions for control structures</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.exceptions">Exceptions</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.construction_and_destruction">Construction and destruction</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#id1243846">Special lambda expressions</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#id1244283">Casts, sizeof and typeid</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.nested_stl_algorithms">Nesting STL algorithm invocations</a></span></dt>
+</dl></div>
+<p>
+This section describes different categories of lambda expressions in details.
+We devote a separate section for each of the possible forms of a lambda expression.
+
+
+</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.placeholders"></a>Placeholders</h4></div></div></div>
+<p>
+The BLL defines three placeholder types: <code class="literal">placeholder1_type</code>, <code class="literal">placeholder2_type</code> and <code class="literal">placeholder3_type</code>.
+BLL has a predefined placeholder variable for each placeholder type: <code class="literal">_1</code>, <code class="literal">_2</code> and <code class="literal">_3</code>.
+However, the user is not forced to use these placeholders.
+It is easy to define placeholders with alternative names.
+This is done by defining new variables of placeholder types.
+For example:
+
+</p>
+<pre class="programlisting">boost::lambda::placeholder1_type X;
+boost::lambda::placeholder2_type Y;
+boost::lambda::placeholder3_type Z;
+</pre>
+<p>
+
+With these variables defined, <code class="literal">X += Y * Z</code> is equivalent to <code class="literal">_1 += _2 * _3</code>.
+</p>
+<p>
+The use of placeholders in the lambda expression determines whether the resulting function is nullary, unary, binary or 3-ary.
+The highest placeholder index is decisive. For example:
+
+</p>
+<pre class="programlisting">
+_1 + 5 // unary
+_1 * _1 + _1 // unary
+_1 + _2 // binary
+bind(f, _1, _2, _3) // 3-ary
+_3 + 10 // 3-ary
+</pre>
+<p>
+
+Note that the last line creates a 3-ary function, which adds <code class="literal">10</code> to its <span class="emphasis"><em>third</em></span> argument.
+The first two arguments are discarded.
+Furthermore, lambda functors only have a minimum arity.
+One can always provide more arguments (up the number of supported placeholders)
+that is really needed.
+The remaining arguments are just discarded.
+For example:
+
+</p>
+<pre class="programlisting">
+int i, j, k;
+_1(i, j, k) // returns i, discards j and k
+(_2 + _2)(i, j, k) // returns j+j, discards i and k
+</pre>
+<p>
+
+See
+<a href="../apa.html#lambda.why_weak_arity" title="
+Lambda functor arity
+">the section called &#8220;
+Lambda functor arity
+&#8221;</a> for the design rationale behind this
+functionality.
+
+</p>
+<p>
+In addition to these three placeholder types, there is also a fourth placeholder type <code class="literal">placeholderE_type</code>.
+The use of this placeholder is defined in <a href="le_in_details.html#lambda.exceptions" title="Exceptions">the section called &#8220;Exceptions&#8221;</a> describing exception handling in lambda expressions.
+</p>
+<p>When an actual argument is supplied for a placeholder, the parameter passing mode is always by reference.
+This means that any side-effects to the placeholder are reflected to the actual argument.
+For example:
+
+
+</p>
+<pre class="programlisting">
+int i = 1;
+(_1 += 2)(i); // i is now 3
+(++_1, cout &lt;&lt; _1)(i) // i is now 4, outputs 4
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.operator_expressions"></a>Operator expressions</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#id1241496">Operators that cannot be overloaded</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.assignment_and_subscript">Assignment and subscript operators</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.logical_operators">Logical operators</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.comma_operator">Comma operator</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.function_call_operator">Function call operator</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.member_pointer_operator">Member pointer operator</a></span></dt>
+</dl></div>
+<p>
+The basic rule is that any C++ operator invocation with at least one argument being a lambda expression is itself a lambda expression.
+Almost all overloadable operators are supported.
+For example, the following is a valid lambda expression:
+
+</p>
+<pre class="programlisting">cout &lt;&lt; _1, _2[_3] = _1 &amp;&amp; false</pre>
+<p>
+However, there are some restrictions that originate from the C++ operator overloading rules, and some special cases.
+</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1241496"></a>Operators that cannot be overloaded</h5></div></div></div>
+<p>
+Some operators cannot be overloaded at all (<code class="literal">::</code>, <code class="literal">.</code>, <code class="literal">.*</code>).
+For some operators, the requirements on return types prevent them to be overloaded to create lambda functors.
+These operators are <code class="literal">-&gt;.</code>, <code class="literal">-&gt;</code>, <code class="literal">new</code>, <code class="literal">new[]</code>, <code class="literal">delete</code>, <code class="literal">delete[]</code> and <code class="literal">?:</code> (the conditional operator).
+</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.assignment_and_subscript"></a>Assignment and subscript operators</h5></div></div></div>
+<p>
+These operators must be implemented as class members.
+Consequently, the left operand must be a lambda expression. For example:
+
+</p>
+<pre class="programlisting">
+int i;
+_1 = i; // ok
+i = _1; // not ok. i is not a lambda expression
+</pre>
+<p>
+
+There is a simple solution around this limitation, described in <a href="le_in_details.html#lambda.delaying_constants_and_variables" title="Delaying constants and variables">the section called &#8220;Delaying constants and variables&#8221;</a>.
+In short,
+the left hand argument can be explicitly turned into a lambda functor by wrapping it with a special <code class="literal">var</code> function:
+</p>
+<pre class="programlisting">
+var(i) = _1; // ok
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.logical_operators"></a>Logical operators</h5></div></div></div>
+<p>
+Logical operators obey the short-circuiting evaluation rules. For example, in the following code, <code class="literal">i</code> is never incremented:
+</p>
+<pre class="programlisting">
+bool flag = true; int i = 0;
+(_1 || ++_2)(flag, i);
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.comma_operator"></a>Comma operator</h5></div></div></div>
+<p>
+Comma operator is the &#8220;<span class="quote">statement separator</span>&#8221; in lambda expressions.
+Since comma is also the separator between arguments in a function call, extra parenthesis are sometimes needed:
+
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(), (++_1, cout &lt;&lt; _1));
+</pre>
+<p>
+
+Without the extra parenthesis around <code class="literal">++_1, cout &lt;&lt; _1</code>, the code would be interpreted as an attempt to call <code class="literal">for_each</code> with four arguments.
+</p>
+<p>
+The lambda functor created by the comma operator adheres to the C++ rule of always evaluating the left operand before the right one.
+In the above example, each element of <code class="literal">a</code> is first incremented, then written to the stream.
+</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.function_call_operator"></a>Function call operator</h5></div></div></div>
+<p>
+The function call operators have the effect of evaluating the lambda
+functor.
+Calls with too few arguments lead to a compile time error.
+</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.member_pointer_operator"></a>Member pointer operator</h5></div></div></div>
+<p>
+The member pointer operator <code class="literal">operator-&gt;*</code> can be overloaded freely.
+Hence, for user defined types, member pointer operator is no special case.
+The built-in meaning, however, is a somewhat more complicated case.
+The built-in member pointer operator is applied if the left argument is a pointer to an object of some class <code class="literal">A</code>, and the right hand argument is a pointer to a member of <code class="literal">A</code>, or a pointer to a member of a class from which <code class="literal">A</code> derives.
+We must separate two cases:
+
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p>The right hand argument is a pointer to a data member.
+In this case the lambda functor simply performs the argument substitution and calls the built-in member pointer operator, which returns a reference to the member pointed to.
+For example:
+</p>
+<pre class="programlisting">
+struct A { int d; };
+A* a = new A();
+ ...
+(a -&gt;* &amp;A::d); // returns a reference to a-&gt;d
+(_1 -&gt;* &amp;A::d)(a); // likewise
+</pre>
+</li>
+<li>
+<p>
+The right hand argument is a pointer to a member function.
+For a built-in call like this, the result is kind of a delayed member function call.
+Such an expression must be followed by a function argument list, with which the delayed member function call is performed.
+For example:
+</p>
+<pre class="programlisting">
+struct B { int foo(int); };
+B* b = new B();
+ ...
+(b -&gt;* &amp;B::foo) // returns a delayed call to b-&gt;foo
+ // a function argument list must follow
+(b -&gt;* &amp;B::foo)(1) // ok, calls b-&gt;foo(1)
+
+(_1 -&gt;* &amp;B::foo)(b); // returns a delayed call to b-&gt;foo,
+ // no effect as such
+(_1 -&gt;* &amp;B::foo)(b)(1); // calls b-&gt;foo(1)
+</pre>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.bind_expressions"></a>Bind expressions</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#lambda.function_pointers_as_targets">Function pointers or references as targets</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#member_functions_as_targets">Member functions as targets</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.members_variables_as_targets">Member variables as targets</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.function_objects_as_targets">Function objects as targets</a></span></dt>
+</dl></div>
+<p>
+Bind expressions can have two forms:
+
+</p>
+<pre class="programlisting">
+bind(<em class="parameter"><code>target-function</code></em>, <em class="parameter"><code>bind-argument-list</code></em>)
+bind(<em class="parameter"><code>target-member-function</code></em>, <em class="parameter"><code>object-argument</code></em>, <em class="parameter"><code>bind-argument-list</code></em>)
+</pre>
+<p>
+
+A bind expression delays the call of a function.
+If this <span class="emphasis"><em>target function</em></span> is <span class="emphasis"><em>n</em></span>-ary, then the <code class="literal"><span class="emphasis"><em>bind-argument-list</em></span></code> must contain <span class="emphasis"><em>n</em></span> arguments as well.
+In the current version of the BLL, 0 &lt;= n &lt;= 9 must hold.
+For member functions, the number of arguments must be at most 8, as the object argument takes one argument position.
+
+Basically, the
+<span class="emphasis"><em><code class="literal">bind-argument-list</code></em></span> must be a valid argument list for the target function, except that any argument can be replaced with a placeholder, or more generally, with a lambda expression.
+Note that also the target function can be a lambda expression.
+
+The result of a bind expression is either a nullary, unary, binary or 3-ary function object depending on the use of placeholders in the <span class="emphasis"><em><code class="literal">bind-argument-list</code></em></span> (see <a href="le_in_details.html#lambda.placeholders" title="Placeholders">the section called &#8220;Placeholders&#8221;</a>).
+</p>
+<p>
+The return type of the lambda functor created by the bind expression can be given as an explicitly specified template parameter, as in the following example:
+</p>
+<pre class="programlisting">
+bind&lt;<span class="emphasis"><em>RET</em></span>&gt;(<span class="emphasis"><em>target-function</em></span>, <span class="emphasis"><em>bind-argument-list</em></span>)
+</pre>
+<p>
+This is only necessary if the return type of the target function cannot be deduced.
+</p>
+<p>
+The following sections describe the different types of bind expressions.
+</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.function_pointers_as_targets"></a>Function pointers or references as targets</h5></div></div></div>
+<p>The target function can be a pointer or a reference to a function and it can be either bound or unbound. For example:
+</p>
+<pre class="programlisting">
+X foo(A, B, C); A a; B b; C c;
+bind(foo, _1, _2, c)(a, b);
+bind(&amp;foo, _1, _2, c)(a, b);
+bind(_1, a, b, c)(foo);
+</pre>
+<p>
+
+The return type deduction always succeeds with this type of bind expressions.
+</p>
+<p>
+Note, that in C++ it is possible to take the address of an overloaded function only if the address is assigned to, or used as an initializer of, a variable, the type of which solves the amibiguity, or if an explicit cast expression is used.
+This means that overloaded functions cannot be used in bind expressions directly, e.g.:
+</p>
+<pre class="programlisting">
+void foo(int);
+void foo(float);
+int i;
+ ...
+bind(&amp;foo, _1)(i); // error
+ ...
+void (*pf1)(int) = &amp;foo;
+bind(pf1, _1)(i); // ok
+bind(static_cast&lt;void(*)(int)&gt;(&amp;foo), _1)(i); // ok
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="member_functions_as_targets"></a>Member functions as targets</h5></div></div></div>
+<p>
+The syntax for using pointers to member function in bind expression is:
+</p>
+<pre class="programlisting">
+bind(<em class="parameter"><code>target-member-function</code></em>, <em class="parameter"><code>object-argument</code></em>, <em class="parameter"><code>bind-argument-list</code></em>)
+</pre>
+<p>
+
+The object argument can be a reference or pointer to the object, the BLL supports both cases with a uniform interface:
+
+</p>
+<pre class="programlisting">
+bool A::foo(int) const;
+A a;
+vector&lt;int&gt; ints;
+ ...
+find_if(ints.begin(), ints.end(), bind(&amp;A::foo, a, _1));
+find_if(ints.begin(), ints.end(), bind(&amp;A::foo, &amp;a, _1));
+</pre>
+<p>
+
+Similarly, if the object argument is unbound, the resulting lambda functor can be called both via a pointer or a reference:
+
+</p>
+<pre class="programlisting">
+bool A::foo(int);
+list&lt;A&gt; refs;
+list&lt;A*&gt; pointers;
+ ...
+find_if(refs.begin(), refs.end(), bind(&amp;A::foo, _1, 1));
+find_if(pointers.begin(), pointers.end(), bind(&amp;A::foo, _1, 1));
+</pre>
+<p>
+Even though the interfaces are the same, there are important semantic differences between using a pointer or a reference as the object argument.
+The differences stem from the way <code class="literal">bind</code>-functions take their parameters, and how the bound parameters are stored within the lambda functor.
+The object argument has the same parameter passing and storing mechanism as any other bind argument slot (see <a href="using_library.html#lambda.storing_bound_arguments" title="Storing bound arguments in lambda functions">the section called &#8220;Storing bound arguments in lambda functions&#8221;</a>); it is passed as a const reference and stored as a const copy in the lambda functor.
+This creates some asymmetry between the lambda functor and the original member function, and between seemingly similar lambda functors. For example:
+</p>
+<pre class="programlisting">
+class A {
+ int i; mutable int j;
+public:
+
+ A(int ii, int jj) : i(ii), j(jj) {};
+ void set_i(int x) { i = x; };
+ void set_j(int x) const { j = x; };
+};
+</pre>
+<p>
+
+When a pointer is used, the behavior is what the programmer might expect:
+
+</p>
+<pre class="programlisting">
+A a(0,0); int k = 1;
+bind(&amp;A::set_i, &amp;a, _1)(k); // a.i == 1
+bind(&amp;A::set_j, &amp;a, _1)(k); // a.j == 1
+</pre>
+<p>
+
+Even though a const copy of the object argument is stored, the original object <code class="literal">a</code> is still modified.
+This is since the object argument is a pointer, and the pointer is copied, not the object it points to.
+When we use a reference, the behaviour is different:
+
+</p>
+<pre class="programlisting">
+A a(0,0); int k = 1;
+bind(&amp;A::set_i, a, _1)(k); // error; a const copy of a is stored.
+ // Cannot call a non-const function set_i
+bind(&amp;A::set_j, a, _1)(k); // a.j == 0, as a copy of a is modified
+</pre>
+<p>
+To prevent the copying from taking place, one can use the <code class="literal">ref</code> or <code class="literal">cref</code> wrappers (<code class="literal">var</code> and <code class="literal">constant_ref</code> would do as well):
+</p>
+<pre class="programlisting">
+bind(&amp;A::set_i, ref(a), _1)(k); // a.j == 1
+bind(&amp;A::set_j, cref(a), _1)(k); // a.j == 1
+</pre>
+<p>Note that the preceding discussion is relevant only for bound arguments.
+If the object argument is unbound, the parameter passing mode is always by reference.
+Hence, the argument <code class="literal">a</code> is not copied in the calls to the two lambda functors below:
+</p>
+<pre class="programlisting">
+A a(0,0);
+bind(&amp;A::set_i, _1, 1)(a); // a.i == 1
+bind(&amp;A::set_j, _1, 1)(a); // a.j == 1
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.members_variables_as_targets"></a>Member variables as targets</h5></div></div></div>
+<p>
+A pointer to a member variable is not really a function, but
+the first argument to the <code class="literal">bind</code> function can nevertheless
+be a pointer to a member variable.
+Invoking such a bind expression returns a reference to the data member.
+For example:
+
+</p>
+<pre class="programlisting">
+struct A { int data; };
+A a;
+bind(&amp;A::data, _1)(a) = 1; // a.data == 1
+</pre>
+<p>
+
+The cv-qualifiers of the object whose member is accessed are respected.
+For example, the following tries to write into a const location:
+</p>
+<pre class="programlisting">
+const A ca = a;
+bind(&amp;A::data, _1)(ca) = 1; // error
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.function_objects_as_targets"></a>Function objects as targets</h5></div></div></div>
+<p>
+
+Function objects, that is, class objects which have the function call
+operator defined, can be used as target functions.
+
+In general, BLL cannot deduce the return type of an arbitrary function object.
+
+However, there are two methods for giving BLL this capability for a certain
+function object class.
+
+</p>
+<div class="simplesect" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1242153"></a>The result_type typedef</h6></div></div></div>
+<p>
+
+The BLL supports the standard library convention of declaring the return type
+of a function object with a member typedef named <code class="literal">result_type</code> in the
+function object class.
+
+Here is a simple example:
+</p>
+<pre class="programlisting">
+struct A {
+ typedef B result_type;
+ B operator()(X, Y, Z);
+};
+</pre>
+<p>
+
+If a function object does not define a <code class="literal">result_type</code> typedef,
+the method described below (<code class="literal">sig</code> template)
+is attempted to resolve the return type of the
+function object. If a function object defines both <code class="literal">result_type</code>
+and <code class="literal">sig</code>, <code class="literal">result_type</code> takes precedence.
+
+</p>
+</div>
+<div class="simplesect" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1242206"></a>The sig template</h6></div></div></div>
+<p>
+Another mechanism that make BLL aware of the return type(s) of a function object is defining
+member template struct
+<code class="literal">sig&lt;Args&gt;</code> with a typedef
+<code class="literal">type</code> that specifies the return type.
+
+Here is a simple example:
+</p>
+<pre class="programlisting">
+struct A {
+ template &lt;class Args&gt; struct sig { typedef B type; }
+ B operator()(X, Y, Z);
+};
+</pre>
+<p>
+
+The template argument <code class="literal">Args</code> is a
+<code class="literal">tuple</code> (or more precisely a <code class="literal">cons</code> list)
+type [<a href="../lambda.html#cit:boost::tuple" title="[tuple]"><span class="abbrev">tuple</span></a>], where the first element
+is the function
+object type itself, and the remaining elements are the types of
+the arguments, with which the function object is being called.
+
+This may seem overly complex compared to defining the <code class="literal">result_type</code> typedef.
+Howver, there are two significant restrictions with using just a simple
+typedef to express the return type:
+</p>
+<div class="orderedlist"><ol type="1">
+<li><p>
+If the function object defines several function call operators, there is no way to specify different result types for them.
+</p></li>
+<li><p>
+If the function call operator is a template, the result type may
+depend on the template parameters.
+Hence, the typedef ought to be a template too, which the C++ language
+does not support.
+</p></li>
+</ol></div>
+<p>
+
+The following code shows an example, where the return type depends on the type
+of one of the arguments, and how that dependency can be expressed with the
+<code class="literal">sig</code> template:
+
+</p>
+<pre class="programlisting">
+struct A {
+
+ // the return type equals the third argument type:
+ template&lt;class T1, class T2, class T3&gt;
+ T3 operator()(const T1&amp; t1, const T2&amp; t2, const T3&amp; t3) const;
+
+ template &lt;class Args&gt;
+ class sig {
+ // get the third argument type (4th element)
+ typedef typename
+ boost::tuples::element&lt;3, Args&gt;::type T3;
+ public:
+ typedef typename
+ boost::remove_cv&lt;T3&gt;::type type;
+ };
+};
+</pre>
+<p>
+
+
+The elements of the <code class="literal">Args</code> tuple are always
+non-reference types.
+
+Moreover, the element types can have a const or volatile qualifier
+(jointly referred to as <span class="emphasis"><em>cv-qualifiers</em></span>), or both.
+This is since the cv-qualifiers in the arguments can affect the return type.
+The reason for including the potentially cv-qualified function object
+type itself into the <code class="literal">Args</code> tuple, is that the function
+object class can contain both const and non-const (or volatile, even
+const volatile) function call operators, and they can each have a different
+return type.
+</p>
+<p>
+The <code class="literal">sig</code> template can be seen as a
+<span class="emphasis"><em>meta-function</em></span> that maps the argument type tuple to
+the result type of the call made with arguments of the types in the tuple.
+
+As the example above demonstrates, the template can end up being somewhat
+complex.
+Typical tasks to be performed are the extraction of the relevant types
+from the tuple, removing cv-qualifiers etc.
+See the Boost type_traits [<a href="../lambda.html#cit:boost::type_traits" title="[type_traits]"><span class="abbrev">type_traits</span></a>] and
+Tuple [<a href="../lambda.html#cit:boost::type_traits" title="[type_traits]"><span class="abbrev">type_traits</span></a>] libraries
+for tools that can aid in these tasks.
+The <code class="literal">sig</code> templates are a refined version of a similar
+mechanism first introduced in the FC++ library
+[<a href="../lambda.html#cit:fc++" title="[fc++]"><span class="abbrev">fc++</span></a>].
+</p>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.overriding_deduced_return_type"></a>Overriding the deduced return type</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="le_in_details.html#lambda.nullary_functors_and_ret">Nullary lambda functors and ret</a></span></dt></dl></div>
+<p>
+The return type deduction system may not be able to deduce the return types of some user defined operators or bind expressions with class objects.
+
+A special lambda expression type is provided for stating the return type explicitly and overriding the deduction system.
+To state that the return type of the lambda functor defined by the lambda expression <code class="literal">e</code> is <code class="literal">T</code>, you can write:
+
+</p>
+<pre class="programlisting">ret&lt;T&gt;(e);</pre>
+<p>
+
+The effect is that the return type deduction is not performed for the lambda expression <code class="literal">e</code> at all, but instead, <code class="literal">T</code> is used as the return type.
+Obviously <code class="literal">T</code> cannot be an arbitrary type, the true result of the lambda functor must be implicitly convertible to <code class="literal">T</code>.
+For example:
+
+</p>
+<pre class="programlisting">
+A a; B b;
+C operator+(A, B);
+int operator*(A, B);
+ ...
+ret&lt;D&gt;(_1 + _2)(a, b); // error (C cannot be converted to D)
+ret&lt;C&gt;(_1 + _2)(a, b); // ok
+ret&lt;float&gt;(_1 * _2)(a, b); // ok (int can be converted to float)
+ ...
+struct X {
+ Y operator(int)();
+};
+ ...
+X x; int i;
+bind(x, _1)(i); // error, return type cannot be deduced
+ret&lt;Y&gt;(bind(x, _1))(i); // ok
+</pre>
+<p>
+For bind expressions, there is a short-hand notation that can be used instead of <code class="literal">ret</code>.
+The last line could alternatively be written as:
+
+</p>
+<pre class="programlisting">bind&lt;Z&gt;(x, _1)(i);</pre>
+<p>
+This feature is modeled after the Boost Bind library [<a href="../lambda.html#cit:boost::bind" title="[bind]"><span class="abbrev">bind</span></a>].
+
+</p>
+<p>Note that within nested lambda expressions,
+the <code class="literal">ret</code> must be used at each subexpression where
+the deduction would otherwise fail.
+For example:
+</p>
+<pre class="programlisting">
+A a; B b;
+C operator+(A, B); D operator-(C);
+ ...
+ret&lt;D&gt;( - (_1 + _2))(a, b); // error
+ret&lt;D&gt;( - ret&lt;C&gt;(_1 + _2))(a, b); // ok
+</pre>
+<p>If you find yourself using <code class="literal">ret</code> repeatedly with the same types, it is worth while extending the return type deduction (see <a href="extending.html" title="Extending return type deduction system">the section called &#8220;Extending return type deduction system&#8221;</a>).
+</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.nullary_functors_and_ret"></a>Nullary lambda functors and ret</h5></div></div></div>
+<p>
+As stated above, the effect of <code class="literal">ret</code> is to prevent the return type deduction to be performed.
+However, there is an exception.
+Due to the way the C++ template instantiation works, the compiler is always forced to instantiate the return type deduction templates for zero-argument lambda functors.
+This introduces a slight problem with <code class="literal">ret</code>, best described with an example:
+
+</p>
+<pre class="programlisting">
+struct F { int operator()(int i) const; };
+F f;
+ ...
+bind(f, _1); // fails, cannot deduce the return type
+ret&lt;int&gt;(bind(f, _1)); // ok
+ ...
+bind(f, 1); // fails, cannot deduce the return type
+ret&lt;int&gt;(bind(f, 1)); // fails as well!
+</pre>
+<p>
+The BLL cannot deduce the return types of the above bind calls, as <code class="literal">F</code> does not define the typedef <code class="literal">result_type</code>.
+One would expect <code class="literal">ret</code> to fix this, but for the nullary lambda functor that results from a bind expression (last line above) this does not work.
+The return type deduction templates are instantiated, even though it would not be necessary and the result is a compilation error.
+</p>
+<p>The solution to this is not to use the <code class="literal">ret</code> function, but rather define the return type as an explicitly specified template parameter in the <code class="literal">bind</code> call:
+</p>
+<pre class="programlisting">
+bind&lt;int&gt;(f, 1); // ok
+</pre>
+<p>
+
+The lambda functors created with
+<code class="literal">ret&lt;<em class="parameter"><code>T</code></em>&gt;(bind(<em class="parameter"><code>arg-list</code></em>))</code> and
+<code class="literal">bind&lt;<em class="parameter"><code>T</code></em>&gt;(<em class="parameter"><code>arg-list</code></em>)</code> have the exact same functionality &#8212;
+apart from the fact that for some nullary lambda functors the former does not work while the latter does.
+</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.delaying_constants_and_variables"></a>Delaying constants and variables</h4></div></div></div>
+<p>
+The unary functions <code class="literal">constant</code>,
+<code class="literal">constant_ref</code> and <code class="literal">var</code> turn their argument into a lambda functor, that implements an identity mapping.
+The former two are for constants, the latter for variables.
+The use of these <span class="emphasis"><em>delayed</em></span> constants and variables is sometimes necessary due to the lack of explicit syntax for lambda expressions.
+For example:
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(), cout &lt;&lt; _1 &lt;&lt; ' ');
+for_each(a.begin(), a.end(), cout &lt;&lt; ' ' &lt;&lt; _1);
+</pre>
+<p>
+The first line outputs the elements of <code class="literal">a</code> separated by spaces, while the second line outputs a space followed by the elements of <code class="literal">a</code> without any separators.
+The reason for this is that neither of the operands of
+<code class="literal">cout &lt;&lt; ' '</code> is a lambda expression, hence <code class="literal">cout &lt;&lt; ' '</code> is evaluated immediately.
+
+To delay the evaluation of <code class="literal">cout &lt;&lt; ' '</code>, one of the operands must be explicitly marked as a lambda expression.
+This is accomplished with the <code class="literal">constant</code> function:
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(), cout &lt;&lt; constant(' ') &lt;&lt; _1);
+</pre>
+<p>
+
+The call <code class="literal">constant(' ')</code> creates a nullary lambda functor which stores the character constant <code class="literal">' '</code>
+and returns a reference to it when invoked.
+The function <code class="literal">constant_ref</code> is similar, except that it
+stores a constant reference to its argument.
+
+The <code class="literal">constant</code> and <code class="literal">consant_ref</code> are only
+needed when the operator call has side effects, like in the above example.
+</p>
+<p>
+Sometimes we need to delay the evaluation of a variable.
+Suppose we wanted to output the elements of a container in a numbered list:
+
+</p>
+<pre class="programlisting">
+int index = 0;
+for_each(a.begin(), a.end(), cout &lt;&lt; ++index &lt;&lt; ':' &lt;&lt; _1 &lt;&lt; '\n');
+for_each(a.begin(), a.end(), cout &lt;&lt; ++var(index) &lt;&lt; ':' &lt;&lt; _1 &lt;&lt; '\n');
+</pre>
+<p>
+
+The first <code class="literal">for_each</code> invocation does not do what we want; <code class="literal">index</code> is incremented only once, and its value is written into the output stream only once.
+By using <code class="literal">var</code> to make <code class="literal">index</code> a lambda expression, we get the desired effect.
+</p>
+<p>
+In sum, <code class="literal">var(x)</code> creates a nullary lambda functor,
+which stores a reference to the variable <code class="literal">x</code>.
+When the lambda functor is invoked, a reference to <code class="literal">x</code> is returned.
+</p>
+<div class="simplesect" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1242806"></a>Naming delayed constants and variables</h5></div></div></div>
+<p>
+It is possible to predefine and name a delayed variable or constant outside a lambda expression.
+The templates <code class="literal">var_type</code>, <code class="literal">constant_type</code>
+and <code class="literal">constant_ref_type</code> serve for this purpose.
+They are used as:
+</p>
+<pre class="programlisting">
+var_type&lt;T&gt;::type delayed_i(var(i));
+constant_type&lt;T&gt;::type delayed_c(constant(c));
+</pre>
+<p>
+The first line defines the variable <code class="literal">delayed_i</code> which is a delayed version of the variable <code class="literal">i</code> of type <code class="literal">T</code>.
+Analogously, the second line defines the constant <code class="literal">delayed_c</code> as a delayed version of the constant <code class="literal">c</code>.
+For example:
+
+</p>
+<pre class="programlisting">
+int i = 0; int j;
+for_each(a.begin(), a.end(), (var(j) = _1, _1 = var(i), var(i) = var(j)));
+</pre>
+<p>
+is equivalent to:
+</p>
+<pre class="programlisting">
+int i = 0; int j;
+var_type&lt;int&gt;::type vi(var(i)), vj(var(j));
+for_each(a.begin(), a.end(), (vj = _1, _1 = vi, vi = vj));
+</pre>
+<p>
+Here is an example of naming a delayed constant:
+</p>
+<pre class="programlisting">
+constant_type&lt;char&gt;::type space(constant(' '));
+for_each(a.begin(),a.end(), cout &lt;&lt; space &lt;&lt; _1);
+</pre>
+</div>
+<div class="simplesect" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1242898"></a>About assignment and subscript operators</h5></div></div></div>
+<p>
+As described in <a href="le_in_details.html#lambda.assignment_and_subscript" title="Assignment and subscript operators">the section called &#8220;Assignment and subscript operators&#8221;</a>, assignment and subscripting operators are always defined as member functions.
+This means, that for expressions of the form
+<code class="literal">x = y</code> or <code class="literal">x[y]</code> to be interpreted as lambda expressions, the left-hand operand <code class="literal">x</code> must be a lambda expression.
+Consequently, it is sometimes necessary to use <code class="literal">var</code> for this purpose.
+We repeat the example from <a href="le_in_details.html#lambda.assignment_and_subscript" title="Assignment and subscript operators">the section called &#8220;Assignment and subscript operators&#8221;</a>:
+
+</p>
+<pre class="programlisting">
+int i;
+i = _1; // error
+var(i) = _1; // ok
+</pre>
+<p>
+
+Note that the compound assignment operators <code class="literal">+=</code>, <code class="literal">-=</code> etc. can be defined as non-member functions, and thus they are interpreted as lambda expressions even if only the right-hand operand is a lambda expression.
+Nevertheless, it is perfectly ok to delay the left operand explicitly.
+For example, <code class="literal">i += _1</code> is equivalent to <code class="literal">var(i) += _1</code>.
+</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.lambda_expressions_for_control_structures"></a>Lambda expressions for control structures</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="le_in_details.html#lambda.switch_statement">Switch statement</a></span></dt></dl></div>
+<p>
+BLL defines several functions to create lambda functors that represent control structures.
+They all take lambda functors as parameters and return <code class="literal">void</code>.
+To start with an example, the following code outputs all even elements of some container <code class="literal">a</code>:
+
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(),
+ if_then(_1 % 2 == 0, cout &lt;&lt; _1));
+</pre>
+<p>
+The BLL supports the following function templates for control structures:
+
+</p>
+<pre class="programlisting">
+if_then(condition, then_part)
+if_then_else(condition, then_part, else_part)
+if_then_else_return(condition, then_part, else_part)
+while_loop(condition, body)
+while_loop(condition) // no body case
+do_while_loop(condition, body)
+do_while_loop(condition) // no body case
+for_loop(init, condition, increment, body)
+for_loop(init, condition, increment) // no body case
+switch_statement(...)
+</pre>
+<p>
+
+The return types of all control construct lambda functor is
+<code class="literal">void</code>, except for <code class="literal">if_then_else_return</code>,
+which wraps a call to the conditional operator
+</p>
+<pre class="programlisting">
+condition ? then_part : else_part
+</pre>
+<p>
+The return type rules for this operator are somewhat complex.
+Basically, if the branches have the same type, this type is the return type.
+If the type of the branches differ, one branch, say of type
+<code class="literal">A</code>, must be convertible to the other branch,
+say of type <code class="literal">B</code>.
+In this situation, the result type is <code class="literal">B</code>.
+Further, if the common type is an lvalue, the return type will be an lvalue
+too.
+</p>
+<p>
+Delayed variables tend to be commonplace in control structure lambda expressions.
+For instance, here we use the <code class="literal">var</code> function to turn the arguments of <code class="literal">for_loop</code> into lambda expressions.
+The effect of the code is to add 1 to each element of a two-dimensional array:
+
+</p>
+<pre class="programlisting">
+int a[5][10]; int i;
+for_each(a, a+5,
+ for_loop(var(i)=0, var(i)&lt;10, ++var(i),
+ _1[var(i)] += 1));
+</pre>
+<p>
+The BLL supports an alternative syntax for control expressions, suggested
+by Joel de Guzmann.
+By overloading the <code class="literal">operator[]</code> we can
+get a closer resemblance with the built-in control structures:
+
+</p>
+<pre class="programlisting">
+if_(condition)[then_part]
+if_(condition)[then_part].else_[else_part]
+while_(condition)[body]
+do_[body].while_(condition)
+for_(init, condition, increment)[body]
+</pre>
+<p>
+
+For example, using this syntax the <code class="literal">if_then</code> example above
+can be written as:
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(),
+ if_(_1 % 2 == 0)[ cout &lt;&lt; _1 ])
+</pre>
+<p>
+
+As more experience is gained, we may end up deprecating one or the other
+of these syntaces.
+
+</p>
+<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.switch_statement"></a>Switch statement</h5></div></div></div></div>
+<p>
+The lambda expressions for <code class="literal">switch</code> control structures are more complex since the number of cases may vary.
+The general form of a switch lambda expression is:
+
+</p>
+<pre class="programlisting">
+switch_statement(<em class="parameter"><code>condition</code></em>,
+ case_statement&lt;<em class="parameter"><code>label</code></em>&gt;(<em class="parameter"><code>lambda expression</code></em>),
+ case_statement&lt;<em class="parameter"><code>label</code></em>&gt;(<em class="parameter"><code>lambda expression</code></em>),
+ ...
+ default_statement(<em class="parameter"><code>lambda expression</code></em>)
+)
+</pre>
+<p>
+
+The <code class="literal"><em class="parameter"><code>condition</code></em></code> argument must be a lambda expression that creates a lambda functor with an integral return type.
+The different cases are created with the <code class="literal">case_statement</code> functions, and the optional default case with the <code class="literal">default_statement</code> function.
+The case labels are given as explicitly specified template arguments to <code class="literal">case_statement</code> functions and
+<code class="literal">break</code> statements are implicitly part of each case.
+For example, <code class="literal">case_statement&lt;1&gt;(a)</code>, where <code class="literal">a</code> is some lambda functor, generates the code:
+
+</p>
+<pre class="programlisting">
+case 1:
+ <em class="parameter"><code>evaluate lambda functor</code></em> a;
+ break;
+</pre>
+<p>
+The <code class="literal">switch_statement</code> function is specialized for up to 9 case statements.
+
+</p>
+<p>
+As a concrete example, the following code iterates over some container <code class="literal">v</code> and ouptuts &#8220;<span class="quote">zero</span>&#8221; for each <code class="literal">0</code>, &#8220;<span class="quote">one</span>&#8221; for each <code class="literal">1</code>, and &#8220;<span class="quote">other: <em class="parameter"><code>n</code></em></span>&#8221; for any other value <em class="parameter"><code>n</code></em>.
+Note that another lambda expression is sequenced after the <code class="literal">switch_statement</code> to output a line break after each element:
+
+</p>
+<pre class="programlisting">
+std::for_each(v.begin(), v.end(),
+ (
+ switch_statement(
+ _1,
+ case_statement&lt;0&gt;(std::cout &lt;&lt; constant("zero")),
+ case_statement&lt;1&gt;(std::cout &lt;&lt; constant("one")),
+ default_statement(cout &lt;&lt; constant("other: ") &lt;&lt; _1)
+ ),
+ cout &lt;&lt; constant("\n")
+ )
+);
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.exceptions"></a>Exceptions</h4></div></div></div>
+<p>
+The BLL provides lambda functors that throw and catch exceptions.
+Lambda functors for throwing exceptions are created with the unary function <code class="literal">throw_exception</code>.
+The argument to this function is the exception to be thrown, or a lambda functor which creates the exception to be thrown.
+A lambda functor for rethrowing exceptions is created with the nullary <code class="literal">rethrow</code> function.
+</p>
+<p>
+Lambda expressions for handling exceptions are somewhat more complex.
+The general form of a lambda expression for try catch blocks is as follows:
+
+</p>
+<pre class="programlisting">
+try_catch(
+ <em class="parameter"><code>lambda expression</code></em>,
+ catch_exception&lt;<em class="parameter"><code>type</code></em>&gt;(<em class="parameter"><code>lambda expression</code></em>),
+ catch_exception&lt;<em class="parameter"><code>type</code></em>&gt;(<em class="parameter"><code>lambda expression</code></em>),
+ ...
+ catch_all(<em class="parameter"><code>lambda expression</code></em>)
+)
+</pre>
+<p>
+
+The first lambda expression is the try block.
+Each <code class="literal">catch_exception</code> defines a catch block where the
+explicitly specified template argument defines the type of the exception
+to catch.
+
+The lambda expression within the <code class="literal">catch_exception</code> defines
+the actions to take if the exception is caught.
+
+Note that the resulting exception handlers catch the exceptions as
+references, i.e., <code class="literal">catch_exception&lt;T&gt;(...)</code>
+results in the catch block:
+
+</p>
+<pre class="programlisting">
+catch(T&amp; e) { ... }
+</pre>
+<p>
+
+The last catch block can alternatively be a call to
+<code class="literal">catch_exception&lt;<em class="parameter"><code>type</code></em>&gt;</code>
+or to
+<code class="literal">catch_all</code>, which is the lambda expression equivalent to
+<code class="literal">catch(...)</code>.
+
+</p>
+<p>
+
+The <a href="le_in_details.html#ex:exceptions" title="Example 6.1. Throwing and handling exceptions in lambda expressions.">Example 6.1, &#8220;Throwing and handling exceptions in lambda expressions.&#8221;</a> demonstrates the use of the BLL
+exception handling tools.
+The first handler catches exceptions of type <code class="literal">foo_exception</code>.
+Note the use of <code class="literal">_1</code> placeholder in the body of the handler.
+</p>
+<p>
+The second handler shows how to throw exceptions, and demonstrates the
+use of the <span class="emphasis"><em>exception placeholder</em></span><code class="literal">_e</code>.
+
+It is a special placeholder, which refers to the caught exception object
+within the handler body.
+
+Here we are handling an exception of type <code class="literal">std::exception</code>,
+which carries a string explaining the cause of the exception.
+
+This explanation can be queried with the zero-argument member
+function <code class="literal">what</code>.
+
+The expression
+<code class="literal">bind(&amp;std::exception::what, _e)</code> creates the lambda
+function for making that call.
+
+Note that <code class="literal">_e</code> cannot be used outside of an exception handler lambda expression.
+
+
+The last line of the second handler constructs a new exception object and
+throws that with <code class="literal">throw exception</code>.
+
+Constructing and destructing objects within lambda expressions is
+explained in <a href="le_in_details.html#lambda.construction_and_destruction" title="Construction and destruction">the section called &#8220;Construction and destruction&#8221;</a></p>
+<p>
+Finally, the third handler (<code class="literal">catch_all</code>) demonstrates
+rethrowing exceptions.
+</p>
+<div class="example">
+<a name="ex:exceptions"></a><p class="title"><b>Example 6.1. Throwing and handling exceptions in lambda expressions.</b></p>
+<pre class="programlisting">
+for_each(
+ a.begin(), a.end(),
+ try_catch(
+ bind(foo, _1), // foo may throw
+ catch_exception&lt;foo_exception&gt;(
+ cout &lt;&lt; constant("Caught foo_exception: ")
+ &lt;&lt; "foo was called with argument = " &lt;&lt; _1
+ ),
+ catch_exception&lt;std::exception&gt;(
+ cout &lt;&lt; constant("Caught std::exception: ")
+ &lt;&lt; bind(&amp;std::exception::what, _e),
+ throw_exception(bind(constructor&lt;bar_exception&gt;(), _1)))
+ ),
+ catch_all(
+ (cout &lt;&lt; constant("Unknown"), rethrow())
+ )
+ )
+);
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.construction_and_destruction"></a>Construction and destruction</h4></div></div></div>
+<p>
+Operators <code class="literal">new</code> and <code class="literal">delete</code> can be
+overloaded, but their return types are fixed.
+
+Particularly, the return types cannot be lambda functors,
+which prevents them to be overloaded for lambda expressions.
+
+It is not possible to take the address of a constructor,
+hence constructors cannot be used as target functions in bind expressions.
+
+The same is true for destructors.
+
+As a way around these constraints, BLL defines wrapper classes for
+<code class="literal">new</code> and <code class="literal">delete</code> calls,
+as well as for constructors and destructors.
+
+Instances of these classes are function objects, that can be used as
+target functions of bind expressions.
+
+For example:
+
+</p>
+<pre class="programlisting">
+int* a[10];
+for_each(a, a+10, _1 = bind(new_ptr&lt;int&gt;()));
+for_each(a, a+10, bind(delete_ptr(), _1));
+</pre>
+<p>
+
+The <code class="literal">new_ptr&lt;int&gt;()</code> expression creates
+a function object that calls <code class="literal">new int()</code> when invoked,
+and wrapping that inside <code class="literal">bind</code> makes it a lambda functor.
+
+In the same way, the expression <code class="literal">delete_ptr()</code> creates
+a function object that invokes <code class="literal">delete</code> on its argument.
+
+Note that <code class="literal">new_ptr&lt;<em class="parameter"><code>T</code></em>&gt;()</code>
+can take arguments as well.
+
+They are passed directly to the constructor invocation and thus allow
+calls to constructors which take arguments.
+
+</p>
+<p>
+
+As an example of constructor calls in lambda expressions,
+the following code reads integers from two containers <code class="literal">x</code>
+and <code class="literal">y</code>,
+constructs pairs out of them and inserts them into a third container:
+
+</p>
+<pre class="programlisting">
+vector&lt;pair&lt;int, int&gt; &gt; v;
+transform(x.begin(), x.end(), y.begin(), back_inserter(v),
+ bind(constructor&lt;pair&lt;int, int&gt; &gt;(), _1, _2));
+</pre>
+<p><a href="le_in_details.html#table:constructor_destructor_fos" title="Table 6.1. Construction and destruction related function objects.">Table 6.1, &#8220;Construction and destruction related function objects.&#8221;</a> lists all the function
+objects related to creating and destroying objects,
+ showing the expression to create and call the function object,
+and the effect of evaluating that expression.
+
+</p>
+<div class="table">
+<a name="table:constructor_destructor_fos"></a><p class="title"><b>Table 6.1. Construction and destruction related function objects.</b></p>
+<table class="table" summary="Construction and destruction related function objects.">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Function object call</th>
+<th>Wrapped expression</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="literal">constructor&lt;T&gt;()(<em class="parameter"><code>arg_list</code></em>)</code></td>
+<td>T(<em class="parameter"><code>arg_list</code></em>)</td>
+</tr>
+<tr>
+<td><code class="literal">destructor()(a)</code></td>
+<td>
+<code class="literal">a.~A()</code>, where <code class="literal">a</code> is of type <code class="literal">A</code>
+</td>
+</tr>
+<tr>
+<td><code class="literal">destructor()(pa)</code></td>
+<td>
+<code class="literal">pa-&gt;~A()</code>, where <code class="literal">pa</code> is of type <code class="literal">A*</code>
+</td>
+</tr>
+<tr>
+<td><code class="literal">new_ptr&lt;T&gt;()(<em class="parameter"><code>arg_list</code></em>)</code></td>
+<td><code class="literal">new T(<em class="parameter"><code>arg_list</code></em>)</code></td>
+</tr>
+<tr>
+<td><code class="literal">new_array&lt;T&gt;()(sz)</code></td>
+<td><code class="literal">new T[sz]</code></td>
+</tr>
+<tr>
+<td><code class="literal">delete_ptr()(p)</code></td>
+<td><code class="literal">delete p</code></td>
+</tr>
+<tr>
+<td><code class="literal">delete_array()(p)</code></td>
+<td><code class="literal">delete p[]</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1243846"></a>Special lambda expressions</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#id1243850">Preventing argument substitution</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#lambda.rvalues_as_actual_arguments">Rvalues as actual arguments to lambda functors</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1243850"></a>Preventing argument substitution</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#lambda.unlambda">Unlambda</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#id1244056">Protect</a></span></dt>
+</dl></div>
+<p>
+When a lambda functor is called, the default behavior is to substitute
+the actual arguments for the placeholders within all subexpressions.
+
+This section describes the tools to prevent the substitution and
+evaluation of a subexpression, and explains when these tools should be used.
+</p>
+<p>
+The arguments to a bind expression can be arbitrary lambda expressions,
+e.g., other bind expressions.
+
+For example:
+
+</p>
+<pre class="programlisting">
+int foo(int); int bar(int);
+...
+int i;
+bind(foo, bind(bar, _1)(i);
+</pre>
+<p>
+
+The last line makes the call <code class="literal">foo(bar(i));</code>
+
+Note that the first argument in a bind expression, the target function,
+is no exception, and can thus be a bind expression too.
+
+The innermost lambda functor just has to return something that can be used
+as a target function: another lambda functor, function pointer,
+pointer to member function etc.
+
+For example, in the following code the innermost lambda functor makes
+a selection between two functions, and returns a pointer to one of them:
+
+</p>
+<pre class="programlisting">
+int add(int a, int b) { return a+b; }
+int mul(int a, int b) { return a*b; }
+
+int(*)(int, int) add_or_mul(bool x) {
+ return x ? add : mul;
+}
+
+bool condition; int i; int j;
+...
+bind(bind(&amp;add_or_mul, _1), _2, _3)(condition, i, j);
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="lambda.unlambda"></a>Unlambda</h6></div></div></div>
+<p>A nested bind expression may occur inadvertently,
+if the target function is a variable with a type that depends on a
+template parameter.
+
+Typically the target function could be a formal parameter of a
+function template.
+
+In such a case, the programmer may not know whether the target function is a lambda functor or not.
+</p>
+<p>Consider the following function template:
+
+</p>
+<pre class="programlisting">
+template&lt;class F&gt;
+int nested(const F&amp; f) {
+ int x;
+ ...
+ bind(f, _1)(x);
+ ...
+}
+</pre>
+<p>
+
+Somewhere inside the function the formal parameter
+<code class="literal">f</code> is used as a target function in a bind expression.
+
+In order for this <code class="literal">bind</code> call to be valid,
+<code class="literal">f</code> must be a unary function.
+
+Suppose the following two calls to <code class="literal">nested</code> are made:
+
+</p>
+<pre class="programlisting">
+int foo(int);
+int bar(int, int);
+nested(&amp;foo);
+nested(bind(bar, 1, _1));
+</pre>
+<p>
+
+Both are unary functions, or function objects, with appropriate argument
+and return types, but the latter will not compile.
+
+In the latter call, the bind expression inside <code class="literal">nested</code>
+will become:
+
+</p>
+<pre class="programlisting">
+bind(bind(bar, 1, _1), _1)
+</pre>
+<p>
+
+When this is invoked with <code class="literal">x</code>,
+after substituitions we end up trying to call
+
+</p>
+<pre class="programlisting">
+bar(1, x)(x)
+</pre>
+<p>
+
+which is an error.
+
+The call to <code class="literal">bar</code> returns int,
+not a unary function or function object.
+</p>
+<p>
+In the example above, the intent of the bind expression in the
+<code class="literal">nested</code> function is to treat <code class="literal">f</code>
+as an ordinary function object, instead of a lambda functor.
+
+The BLL provides the function template <code class="literal">unlambda</code> to
+express this: a lambda functor wrapped inside <code class="literal">unlambda</code>
+is not a lambda functor anymore, and does not take part into the
+argument substitution process.
+
+Note that for all other argument types <code class="literal">unlambda</code> is
+an identity operation, except for making non-const objects const.
+</p>
+<p>
+Using <code class="literal">unlambda</code>, the <code class="literal">nested</code>
+function is written as:
+
+</p>
+<pre class="programlisting">
+template&lt;class F&gt;
+int nested(const F&amp; f) {
+ int x;
+ ...
+ bind(unlambda(f), _1)(x);
+ ...
+}
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1244056"></a>Protect</h6></div></div></div>
+<p>
+The <code class="literal">protect</code> function is related to unlambda.
+
+It is also used to prevent the argument substitution taking place,
+but whereas <code class="literal">unlambda</code> turns a lambda functor into
+an ordinary function object for good, <code class="literal">protect</code> does
+this temporarily, for just one evaluation round.
+
+For example:
+
+</p>
+<pre class="programlisting">
+int x = 1, y = 10;
+(_1 + protect(_1 + 2))(x)(y);
+</pre>
+<p>
+
+The first call substitutes <code class="literal">x</code> for the leftmost
+<code class="literal">_1</code>, and results in another lambda functor
+<code class="literal">x + (_1 + 2)</code>, which after the call with
+<code class="literal">y</code> becomes <code class="literal">x + (y + 2)</code>,
+and thus finally 13.
+</p>
+<p>
+Primary motivation for including <code class="literal">protect</code> into the library,
+was to allow nested STL algorithm invocations
+(<a href="le_in_details.html#lambda.nested_stl_algorithms" title="Nesting STL algorithm invocations">the section called &#8220;Nesting STL algorithm invocations&#8221;</a>).
+</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.rvalues_as_actual_arguments"></a>Rvalues as actual arguments to lambda functors</h5></div></div></div>
+<p>
+Actual arguments to the lambda functors cannot be non-const rvalues.
+This is due to a deliberate design decision: either we have this restriction,
+or there can be no side-effects to the actual arguments.
+
+There are ways around this limitation.
+
+We repeat the example from section
+<a href="using_library.html#lambda.actual_arguments_to_lambda_functors" title="About actual arguments to lambda functors">the section called &#8220;About actual arguments to lambda functors&#8221;</a> and list the
+different solutions:
+
+</p>
+<pre class="programlisting">
+int i = 1; int j = 2;
+(_1 + _2)(i, j); // ok
+(_1 + _2)(1, 2); // error (!)
+</pre>
+<div class="orderedlist"><ol type="1">
+<li><p>
+If the rvalue is of a class type, the return type of the function that
+creates the rvalue should be defined as const.
+Due to an unfortunate language restriction this does not work for
+built-in types, as built-in rvalues cannot be const qualified.
+</p></li>
+<li>
+<p>
+If the lambda function call is accessible, the <code class="literal">make_const</code>
+function can be used to <span class="emphasis"><em>constify</em></span> the rvalue. E.g.:
+
+</p>
+<pre class="programlisting">
+(_1 + _2)(make_const(1), make_const(2)); // ok
+</pre>
+<p>
+
+Commonly the lambda function call site is inside a standard algorithm
+function template, preventing this solution to be used.
+
+</p>
+</li>
+<li>
+<p>
+If neither of the above is possible, the lambda expression can be wrapped
+in a <code class="literal">const_parameters</code> function.
+It creates another type of lambda functor, which takes its arguments as
+const references. For example:
+
+</p>
+<pre class="programlisting">
+const_parameters(_1 + _2)(1, 2); // ok
+</pre>
+<p>
+
+Note that <code class="literal">const_parameters</code> makes all arguments const.
+Hence, in the case were one of the arguments is a non-const rvalue,
+and another argument needs to be passed as a non-const reference,
+this approach cannot be used.
+</p>
+</li>
+<li>
+<p>If none of the above is possible, there is still one solution,
+which unfortunately can break const correctness.
+
+The solution is yet another lambda functor wrapper, which we have named
+<code class="literal">break_const</code> to alert the user of the potential dangers
+of this function.
+
+The <code class="literal">break_const</code> function creates a lambda functor that
+takes its arguments as const, and casts away constness prior to the call
+to the original wrapped lambda functor.
+
+For example:
+</p>
+<pre class="programlisting">
+int i;
+...
+(_1 += _2)(i, 2); // error, 2 is a non-const rvalue
+const_parameters(_1 += _2)(i, 2); // error, i becomes const
+break_const(_1 += _2)(i, 2); // ok, but dangerous
+</pre>
+<p>
+
+Note, that the results of <code class="literal"> break_const</code> or
+<code class="literal">const_parameters</code> are not lambda functors,
+so they cannot be used as subexpressions of lambda expressions. For instance:
+
+</p>
+<pre class="programlisting">
+break_const(_1 + _2) + _3; // fails.
+const_parameters(_1 + _2) + _3; // fails.
+</pre>
+<p>
+
+However, this kind of code should never be necessary,
+since calls to sub lambda functors are made inside the BLL,
+and are not affected by the non-const rvalue problem.
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1244283"></a>Casts, sizeof and typeid</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="le_in_details.html#lambda.cast_expressions">
+Cast expressions
+</a></span></dt>
+<dt><span class="section"><a href="le_in_details.html#id1244354">Sizeof and typeid</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.cast_expressions"></a>
+Cast expressions
+</h5></div></div></div>
+<p>
+The BLL defines its counterparts for the four cast expressions
+<code class="literal">static_cast</code>, <code class="literal">dynamic_cast</code>,
+<code class="literal">const_cast</code> and <code class="literal">reinterpret_cast</code>.
+
+The BLL versions of the cast expressions have the prefix
+<code class="literal">ll_</code>.
+
+The type to cast to is given as an explicitly specified template argument,
+and the sole argument is the expression from which to perform the cast.
+
+If the argument is a lambda functor, the lambda functor is evaluated first.
+
+For example, the following code uses <code class="literal">ll_dynamic_cast</code>
+to count the number of <code class="literal">derived</code> instances in the container
+<code class="literal">a</code>:
+
+</p>
+<pre class="programlisting">
+class base {};
+class derived : public base {};
+
+vector&lt;base*&gt; a;
+...
+int count = 0;
+for_each(a.begin(), a.end(),
+ if_then(ll_dynamic_cast&lt;derived*&gt;(_1), ++var(count)));
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1244354"></a>Sizeof and typeid</h5></div></div></div>
+<p>
+The BLL counterparts for these expressions are named
+<code class="literal">ll_sizeof</code> and <code class="literal">ll_typeid</code>.
+
+Both take one argument, which can be a lambda expression.
+The lambda functor created wraps the <code class="literal">sizeof</code> or
+<code class="literal">typeid</code> call, and when the lambda functor is called
+the wrapped operation is performed.
+
+For example:
+
+</p>
+<pre class="programlisting">
+vector&lt;base*&gt; a;
+...
+for_each(a.begin(), a.end(),
+ cout &lt;&lt; bind(&amp;type_info::name, ll_typeid(*_1)));
+</pre>
+<p>
+
+Here <code class="literal">ll_typeid</code> creates a lambda functor for
+calling <code class="literal">typeid</code> for each element.
+
+The result of a <code class="literal">typeid</code> call is an instance of
+the <code class="literal">type_info</code> class, and the bind expression creates
+a lambda functor for calling the <code class="literal">name</code> member
+function of that class.
+
+</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.nested_stl_algorithms"></a>Nesting STL algorithm invocations</h4></div></div></div>
+<p>
+The BLL defines common STL algorithms as function object classes,
+instances of which can be used as target functions in bind expressions.
+For example, the following code iterates over the elements of a
+two-dimensional array, and computes their sum.
+
+</p>
+<pre class="programlisting">
+int a[100][200];
+int sum = 0;
+
+std::for_each(a, a + 100,
+ bind(ll::for_each(), _1, _1 + 200, protect(sum += _1)));
+</pre>
+<p>
+
+The BLL versions of the STL algorithms are classes, which define the function call operator (or several overloaded ones) to call the corresponding function templates in the <code class="literal">std</code> namespace.
+All these structs are placed in the subnamespace <code class="literal">boost::lambda:ll</code>.
+</p>
+<p>
+Note that there is no easy way to express an overloaded member function
+call in a lambda expression.
+
+This limits the usefulness of nested STL algorithms, as for instance
+the <code class="literal">begin</code> function has more than one overloaded
+definitions in container templates.
+
+In general, something analogous to the pseudo-code below cannot be written:
+
+</p>
+<pre class="programlisting">
+std::for_each(a.begin(), a.end(),
+ bind(ll::for_each(), _1.begin(), _1.end(), protect(sum += _1)));
+</pre>
+<p>
+
+Some aid for common special cases can be provided though.
+
+The BLL defines two helper function object classes,
+<code class="literal">call_begin</code> and <code class="literal">call_end</code>,
+which wrap a call to the <code class="literal">begin</code> and, respectively,
+<code class="literal">end</code> functions of a container, and return the
+<code class="literal">const_iterator</code> type of the container.
+
+With these helper templates, the above code becomes:
+</p>
+<pre class="programlisting">
+std::for_each(a.begin(), a.end(),
+ bind(ll::for_each(),
+ bind(call_begin(), _1), bind(call_end(), _1),
+ protect(sum += _1)));
+</pre>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="using_library.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="extending.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/s03.html b/doc/html/lambda/s03.html
new file mode 100644
index 0000000000..a49fd92da2
--- /dev/null
+++ b/doc/html/lambda/s03.html
@@ -0,0 +1,264 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="getting_started.html" title="Getting Started">
+<link rel="next" href="using_library.html" title="Using the library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="getting_started.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="using_library.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="id1222695"></a>Introduction</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s03.html#id1222698">Motivation</a></span></dt>
+<dt><span class="section"><a href="s03.html#id1222933">Introduction to lambda expressions</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1222698"></a>Motivation</h4></div></div></div>
+<p>The Standard Template Library (STL)
+ [<a href="../lambda.html#cit:stepanov:94" title="[STL94]"><span class="abbrev">STL94</span></a>], now part of the C++ Standard Library [<a href="../lambda.html#cit:c++:98" title="[C++98]"><span class="abbrev">C++98</span></a>], is a generic container and algorithm library.
+Typically STL algorithms operate on container elements via <span class="emphasis"><em>function objects</em></span>. These function objects are passed as arguments to the algorithms.
+</p>
+<p>
+Any C++ construct that can be called with the function call syntax
+is a function object.
+The STL contains predefined function objects for some common cases (such as <code class="literal">plus</code>, <code class="literal">less</code> and <code class="literal">not1</code>).
+As an example, one possible implementation for the standard <code class="literal">plus</code> template is:
+
+</p>
+<pre class="programlisting">
+template &lt;class T&gt; : public binary_function&lt;T, T, T&gt;
+struct plus {
+ T operator()(const T&amp; i, const T&amp; j) const {
+ return i + j;
+ }
+};
+</pre>
+<p>
+
+The base class <code class="literal">binary_function&lt;T, T, T&gt;</code> contains typedefs for the argument and return types of the function object, which are needed to make the function object <span class="emphasis"><em>adaptable</em></span>.
+</p>
+<p>
+In addition to the basic function object classes, such as the one above,
+the STL contains <span class="emphasis"><em>binder</em></span> templates for creating a unary function object from an adaptable binary function object by fixing one of the arguments to a constant value.
+For example, instead of having to explicitly write a function object class like:
+
+</p>
+<pre class="programlisting">
+class plus_1 {
+ int _i;
+public:
+ plus_1(const int&amp; i) : _i(i) {}
+ int operator()(const int&amp; j) { return _i + j; }
+};
+</pre>
+<p>
+
+the equivalent functionality can be achieved with the <code class="literal">plus</code> template and one of the binder templates (<code class="literal">bind1st</code>).
+E.g., the following two expressions create function objects with identical functionalities;
+when invoked, both return the result of adding <code class="literal">1</code> to the argument of the function object:
+
+</p>
+<pre class="programlisting">
+plus_1(1)
+bind1st(plus&lt;int&gt;(), 1)
+</pre>
+<p>
+
+The subexpression <code class="literal">plus&lt;int&gt;()</code> in the latter line is a binary function object which computes the sum of two integers, and <code class="literal">bind1st</code> invokes this function object partially binding the first argument to <code class="literal">1</code>.
+As an example of using the above function object, the following code adds <code class="literal">1</code> to each element of some container <code class="literal">a</code> and outputs the results into the standard output stream <code class="literal">cout</code>.
+
+</p>
+<pre class="programlisting">
+transform(a.begin(), a.end(), ostream_iterator&lt;int&gt;(cout),
+ bind1st(plus&lt;int&gt;(), 1));
+</pre>
+<p>
+To make the binder templates more generally applicable, the STL contains <span class="emphasis"><em>adaptors</em></span> for making
+pointers or references to functions, and pointers to member functions,
+adaptable.
+
+Finally, some STL implementations contain function composition operations as
+extensions to the standard [<a href="../lambda.html#cit:sgi:02" title="[SGI02]"><span class="abbrev">SGI02</span></a>].
+ </p>
+<p>
+All these tools aim at one goal: to make it possible to specify
+<span class="emphasis"><em>unnamed functions</em></span> in a call of an STL algorithm,
+in other words, to pass code fragments as an argument to a function.
+
+However, this goal is attained only partially.
+The simple example above shows that the definition of unnamed functions
+with the standard tools is cumbersome.
+
+Complex expressions involving functors, adaptors, binders and
+function composition operations tend to be difficult to comprehend.
+
+In addition to this, there are significant restrictions in applying
+the standard tools. E.g. the standard binders allow only one argument
+of a binary function to be bound; there are no binders for
+3-ary, 4-ary etc. functions.
+</p>
+<p>
+The Boost Lambda Library provides solutions for the problems described above:
+
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p>
+Unnamed functions can be created easily with an intuitive syntax.
+
+The above example can be written as:
+
+</p>
+<pre class="programlisting">
+transform(a.begin(), a.end(), ostream_iterator&lt;int&gt;(cout),
+ 1 + _1);
+</pre>
+<p>
+
+or even more intuitively:
+
+</p>
+<pre class="programlisting">
+for_each(a.begin(), a.end(), cout &lt;&lt; (1 + _1));
+</pre>
+</li>
+<li><p>
+Most of the restrictions in argument binding are removed,
+arbitrary arguments of practically any C++ function can be bound.
+</p></li>
+<li><p>
+Separate function composition operations are not needed,
+as function composition is supported implicitly.
+
+</p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1222933"></a>Introduction to lambda expressions</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s03.html#lambda.partial_function_application">Partial function application</a></span></dt>
+<dt><span class="section"><a href="s03.html#lambda.terminology">Terminology</a></span></dt>
+</dl></div>
+<p>
+ Lambda expression are common in functional programming languages.
+ Their syntax varies between languages (and between different forms of lambda calculus), but the basic form of a lambda expressions is:
+
+
+</p>
+<pre class="programlisting">
+lambda x<sub>1</sub> ... x<sub>n</sub>.e
+</pre>
+<p>
+
+ A lambda expression defines an unnamed function and consists of:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>
+ the parameters of this function: <code class="literal">x<sub>1</sub> ... x<sub>n</sub></code>.
+ </p></li>
+<li><p>the expression e which computes the value of the function in terms of the parameters <code class="literal">x<sub>1</sub> ... x<sub>n</sub></code>.
+ </p></li>
+</ul></div>
+<p>
+
+ A simple example of a lambda expression is
+</p>
+<pre class="programlisting">
+lambda x y.x+y
+</pre>
+<p>
+Applying the lambda function means substituting the formal parameters with the actual arguments:
+</p>
+<pre class="programlisting">
+(lambda x y.x+y) 2 3 = 2 + 3 = 5
+</pre>
+<p>
+In the C++ version of lambda expressions the <code class="literal">lambda x<sub>1</sub> ... x<sub>n</sub></code> part is missing and the formal parameters have predefined names.
+In the current version of the library,
+there are three such predefined formal parameters,
+called <span class="emphasis"><em>placeholders</em></span>:
+<code class="literal">_1</code>, <code class="literal">_2</code> and <code class="literal">_3</code>.
+They refer to the first, second and third argument of the function defined
+by the lambda expression.
+
+For example, the C++ version of the definition
+</p>
+<pre class="programlisting">lambda x y.x+y</pre>
+<p>
+is
+</p>
+<pre class="programlisting">_1 + _2</pre>
+<p>
+Hence, there is no syntactic keyword for C++ lambda expressions.
+ The use of a placeholder as an operand implies that the operator invocation is a lambda expression.
+ However, this is true only for operator invocations.
+ Lambda expressions containing function calls, control structures, casts etc. require special syntactic constructs.
+ Most importantly, function calls need to be wrapped inside a <code class="literal">bind</code> function.
+
+ As an example, consider the lambda expression:
+
+ </p>
+<pre class="programlisting">lambda x y.foo(x,y)</pre>
+<p>
+
+ Rather than <code class="literal">foo(_1, _2)</code>, the C++ counterpart for this expression is:
+
+ </p>
+<pre class="programlisting">bind(foo, _1, _2)</pre>
+<p>
+
+ We refer to this type of C++ lambda expressions as <span class="emphasis"><em>bind expressions</em></span>.
+ </p>
+<p>A lambda expression defines a C++ function object, hence function application syntax is like calling any other function object, for instance: <code class="literal">(_1 + _2)(i, j)</code>.
+
+
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.partial_function_application"></a>Partial function application</h5></div></div></div>
+<p>
+A bind expression is in effect a <span class="emphasis"><em>partial function application</em></span>.
+In partial function application, some of the arguments of a function are bound to fixed values.
+ The result is another function, with possibly fewer arguments.
+ When called with the unbound arguments, this new function invokes the original function with the merged argument list of bound and unbound arguments.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="lambda.terminology"></a>Terminology</h5></div></div></div>
+<p>
+ A lambda expression defines a function. A C++ lambda expression concretely constructs a function object, <span class="emphasis"><em>a functor</em></span>, when evaluated. We use the name <span class="emphasis"><em>lambda functor</em></span> to refer to such a function object.
+ Hence, in the terminology adopted here, the result of evaluating a lambda expression is a lambda functor.
+ </p>
+</div>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="getting_started.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="using_library.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/s07.html b/doc/html/lambda/s07.html
new file mode 100644
index 0000000000..fab368fe84
--- /dev/null
+++ b/doc/html/lambda/s07.html
@@ -0,0 +1,314 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Practical considerations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="extending.html" title="Extending return type deduction system">
+<link rel="next" href="s08.html" title="Relation to other Boost libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s08.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="id1245398"></a>Practical considerations</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s07.html#id1245402">Performance</a></span></dt>
+<dt><span class="section"><a href="s07.html#id1245714">About compiling</a></span></dt>
+<dt><span class="section"><a href="s07.html#id1245749">Portability</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1245402"></a>Performance</h4></div></div></div>
+<p>In theory, all overhead of using STL algorithms and lambda functors
+compared to hand written loops can be optimized away, just as the overhead
+from standard STL function objects and binders can.
+
+Depending on the compiler, this can also be true in practice.
+We ran two tests with the GCC 3.0.4 compiler on 1.5 GHz Intel Pentium 4.
+The optimization flag -03 was used.
+</p>
+<p>
+In the first test we compared lambda functors against explicitly written
+function objects.
+We used both of these styles to define unary functions which multiply the
+argument repeatedly by itself.
+We started with the identity function, going up to
+x<sup>5</sup>.
+The expressions were called inside a <code class="literal">std::transform</code> loop,
+reading the argument from one <code class="literal">std::vector&lt;int&gt;</code>
+and placing the result into another.
+The length of the vectors was 100 elements.
+The running times are listed in
+<a href="s07.html#table:increasing_arithmetic_test" title="Table 6.3. Test 1">Table 6.3, &#8220;Test 1&#8221;</a>.
+
+We can observe that there is no significant difference between the
+two approaches.
+</p>
+<p>
+In the second test we again used <code class="literal">std::transform</code> to
+perform an operation to each element in a 100-element long vector.
+This time the element type of the vectors was <code class="literal">double</code>
+and we started with very simple arithmetic expressions and moved to
+more complex ones.
+The running times are listed in <a href="s07.html#table:ll_vs_stl_test" title="Table 6.4. Test 2">Table 6.4, &#8220;Test 2&#8221;</a>.
+
+Here, we also included classic STL style unnamed functions into tests.
+We do not show these expressions, as they get rather complex.
+For example, the
+last expression in <a href="s07.html#table:ll_vs_stl_test" title="Table 6.4. Test 2">Table 6.4, &#8220;Test 2&#8221;</a> written with
+classic STL tools contains 7 calls to <code class="literal">compose2</code>,
+8 calls to <code class="literal">bind1st</code>
+and altogether 14 constructor invocations for creating
+<code class="literal">multiplies</code>, <code class="literal">minus</code>
+and <code class="literal">plus</code> objects.
+
+In this test the BLL expressions are a little slower (roughly 10% on average,
+less than 14% in all cases)
+than the corresponding hand-written function objects.
+The performance hit is a bit greater with classic STL expressions,
+up to 27% for the simplest expressios.
+</p>
+<p>
+The tests suggest that the BLL does not introduce a loss of performance
+compared to STL function objects.
+With a reasonable optimizing compiler, one should expect the performance characteristics be comparable to using classic STL.
+Moreover, with simple expressions the performance can be expected to be close
+to that of explicitly written function objects.
+
+
+
+Note however, that evaluating a lambda functor consist of a sequence of calls to small functions that are declared inline.
+If the compiler fails to actually expand these functions inline,
+the performance can suffer.
+The running time can more than double if this happens.
+Although the above tests do not include such an expression, we have experienced
+this for some seemingly simple expressions.
+
+
+</p>
+<div class="table">
+<a name="table:increasing_arithmetic_test"></a><p class="title"><b>Table 6.3. Test 1</b></p>
+<div class="caption">CPU time of expressions with integer multiplication written as a lambda expression and as a traditional hand-coded function object class.
+The running times are expressed in arbitrary units.</div>
+<table class="table" summary="Test 1">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>expression</th>
+<th>lambda expression</th>
+<th>hand-coded function object</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>x</td>
+<td>240</td>
+<td>230</td>
+</tr>
+<tr>
+<td>x*x</td>
+<td>340</td>
+<td>350</td>
+</tr>
+<tr>
+<td>x*x*x</td>
+<td>770</td>
+<td>760</td>
+</tr>
+<tr>
+<td>x*x*x*x</td>
+<td>1180</td>
+<td>1210</td>
+</tr>
+<tr>
+<td>x*x*x*x*x</td>
+<td>1950</td>
+<td>1910</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="table:ll_vs_stl_test"></a><p class="title"><b>Table 6.4. Test 2</b></p>
+<div class="caption">CPU time of arithmetic expressions written as lambda
+expressions, as classic STL unnamed functions (using <code class="literal">compose2</code>, <code class="literal">bind1st</code> etc.) and as traditional hand-coded function object classes.
+Using BLL terminology,
+<code class="literal">a</code> and <code class="literal">b</code> are bound arguments in the expressions, and <code class="literal">x</code> is open.
+All variables were of types <code class="literal">double</code>.
+The running times are expressed in arbitrary units.</div>
+<table class="table" summary="Test 2">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>expression</th>
+<th>lambda expression</th>
+<th>classic STL expression</th>
+<th>hand-coded function object</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>ax</td>
+<td>330</td>
+<td>370</td>
+<td>290</td>
+</tr>
+<tr>
+<td>-ax</td>
+<td>350</td>
+<td>370</td>
+<td>310</td>
+</tr>
+<tr>
+<td>ax-(a+x)</td>
+<td>470</td>
+<td>500</td>
+<td>420</td>
+</tr>
+<tr>
+<td>(ax-(a+x))(a+x)</td>
+<td>620</td>
+<td>670</td>
+<td>600</td>
+</tr>
+<tr>
+<td>((ax) - (a+x))(bx - (b+x))(ax - (b+x))(bx - (a+x))</td>
+<td>1660</td>
+<td>1660</td>
+<td>1460</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>Some additional performance testing with an earlier version of the
+library is described
+[<a href="../lambda.html#cit:jarvi:00" title="[Jär00]"><span class="abbrev">Jär00</span></a>].
+</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1245714"></a>About compiling</h4></div></div></div>
+<p>The BLL uses templates rather heavily, performing numerous recursive instantiations of the same templates.
+This has (at least) three implications:
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>
+While it is possible to write incredibly complex lambda expressions, it probably isn't a good idea.
+Compiling such expressions may end up requiring a lot of memory
+at compile time, and being slow to compile.
+</p></li>
+<li><p>
+The types of lambda functors that result from even the simplest lambda expressions are cryptic.
+Usually the programmer doesn't need to deal with the lambda functor types at all, but in the case of an error in a lambda expression, the compiler usually outputs the types of the lambda functors involved.
+This can make the error messages very long and difficult to interpret, particularly if the compiler outputs the whole chain of template instantiations.
+</p></li>
+<li><p>
+The C++ Standard suggests a template nesting level of 17 to help detect infinite recursion.
+Complex lambda templates can easily exceed this limit.
+Most compilers allow a greater number of nested templates, but commonly require the limit explicitly increased with a command line argument.
+</p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1245749"></a>Portability</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="s07.html#id1245773">Test coverage</a></span></dt></dl></div>
+<p>
+The BLL works with the following compilers, that is, the compilers are capable of compiling the test cases that are included with the BLL:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>GCC 3.0.4
+ </li>
+<li>KCC 4.0f with EDG 2.43.1
+ </li>
+<li>GCC 2.96 (fails with one test case, the <code class="filename">exception_test.cpp</code> results in an internal compiler error.
+)
+
+ </li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1245773"></a>Test coverage</h5></div></div></div>
+<p>The following list describes the test files included and the features that each file covers:
+
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><code class="filename">bind_tests_simple.cpp</code> : Bind expressions of different arities and types of target functions: function pointers, function objects and member functions.
+Function composition with bind expressions.</p></li>
+<li><p><code class="filename">bind_tests_simple_function_references.cpp</code> :
+Repeats all tests from <code class="filename">bind_tests_simple.cpp</code> where the target function is a function pointer, but uses function references instead.
+</p></li>
+<li><p><code class="filename">bind_tests_advanced.cpp</code> : Contains tests for nested bind expressions, <code class="literal">unlambda</code>, <code class="literal">protect</code>, <code class="literal">const_parameters</code> and <code class="literal">break_const</code>.
+Tests passing lambda functors as actual arguments to other lambda functors, currying, and using the <code class="literal">sig</code> template to specify the return type of a function object.
+</p></li>
+<li><p><code class="filename">operator_tests_simple.cpp</code> :
+Tests using all operators that are overloaded for lambda expressions, that is, unary and binary arithmetic,
+bitwise,
+comparison,
+logical,
+increment and decrement,
+compound,
+assignment,
+subscrict,
+address of,
+dereference, and comma operators.
+The streaming nature of shift operators is tested, as well as pointer arithmetic with plus and minus operators.
+</p></li>
+<li><p><code class="filename">member_pointer_test.cpp</code> : The pointer to member operator is complex enough to warrant a separate test file.
+</p></li>
+<li><p><code class="filename">control_structures.cpp</code> :
+Tests for the looping and if constructs.
+</p></li>
+<li><p><code class="filename">switch_construct.cpp</code> :
+Includes tests for all supported arities of the switch statement, both with and without the default case.
+</p></li>
+<li><p><code class="filename">exception_test.cpp</code> :
+Includes tests for throwing exceptions and for try/catch constructs with varying number of catch blocks.
+</p></li>
+<li><p><code class="filename">constructor_tests.cpp</code> :
+Contains tests for <code class="literal">constructor</code>, <code class="literal">destructor</code>, <code class="literal">new_ptr</code>, <code class="literal">delete_ptr</code>, <code class="literal">new_array</code> and <code class="literal">delete_array</code>.
+</p></li>
+<li><p><code class="filename">cast_test.cpp</code> : Tests for the four cast expressions, as well as <code class="filename">typeid</code> and <code class="literal">sizeof</code>.
+</p></li>
+<li><p><code class="filename">extending_return_type_traits.cpp</code> : Tests extending the return type deduction system for user defined types.
+Contains several user defined operators and the corresponding specializations for the return type deduction templates.
+</p></li>
+<li><p><code class="filename">is_instance_of_test.cpp</code> : Includes tests for an internally used traits template, which can detect whether a given type is an instance of a certain template or not.
+</p></li>
+<li><p><code class="filename">bll_and_function.cpp</code> :
+Contains tests for using <code class="literal">boost::function</code> together with lambda functors.
+</p></li>
+</ul></div>
+</div>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s08.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/s08.html b/doc/html/lambda/s08.html
new file mode 100644
index 0000000000..dc32982cc5
--- /dev/null
+++ b/doc/html/lambda/s08.html
@@ -0,0 +1,177 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Relation to other Boost libraries</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="s07.html" title="Practical considerations">
+<link rel="next" href="s09.html" title="Contributors">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s07.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s09.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="id1246000"></a>Relation to other Boost libraries</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s08.html#id1246004">Boost Function</a></span></dt>
+<dt><span class="section"><a href="s08.html#id1246081">Boost Bind</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1246004"></a>Boost Function</h4></div></div></div>
+<p>Sometimes it is convenient to store lambda functors in variables.
+However, the types of even the simplest lambda functors are long and unwieldy, and it is in general unfeasible to declare variables with lambda functor types.
+<span class="emphasis"><em>The Boost Function library</em></span>[<a href="../lambda.html#cit:boost::function" title="[function]"><span class="abbrev">function</span></a>] defines wrappers for arbitrary function objects, for example
+lambda functors; and these wrappers have types that are easy to type out.
+
+For example:
+
+</p>
+<pre class="programlisting">
+boost::function&lt;int(int, int)&gt; f = _1 + _2;
+boost::function&lt;int&amp;(int&amp;)&gt; g = (_1 += 10);
+int i = 1, j = 2;
+f(i, j); // returns 3
+g(i); // sets i to = 11;
+</pre>
+<p>
+
+The return and parameter types of the wrapped function object must be written explicilty as the template argument to the wrapper template <code class="literal">boost::function</code>; even when lambda functors, which otherwise have generic parameters, are wrapped.
+Wrapping a function object with <code class="literal">boost::function</code> introduces a performance cost comparable to virtual function dispatch, though virtual functions are not actually used.
+
+Note that storing lambda functors inside <code class="literal">boost::function</code>
+introduces a danger.
+Certain types of lambda functors may store references to the bound
+arguments, instead as taking copies of the arguments of the lambda expression.
+When temporary lambda functor objects are used
+in STL algorithm invocations this is always safe, as the lambda functor gets
+destructed immediately after the STL algortihm invocation is completed.
+
+However, a lambda functor wrapped inside <code class="literal">boost::function</code>
+may continue to exist longer, creating the possibility of dangling references.
+For example:
+
+</p>
+<pre class="programlisting">
+int* sum = new int();
+*sum = 0;
+boost::function&lt;int&amp;(int)&gt; counter = *sum += _1;
+counter(5); // ok, *sum = 5;
+delete sum;
+counter(3); // error, *sum does not exist anymore
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1246081"></a>Boost Bind</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="s08.html#id1246134">First argument of bind expression</a></span></dt></dl></div>
+<p><span class="emphasis"><em>The Boost Bind</em></span>[<a href="../lambda.html#cit:boost::bind" title="[bind]"><span class="abbrev">bind</span></a>] library has partially overlapping functionality with the BLL.
+Basically, the Boost Bind library (BB in the sequel) implements the bind expression part of BLL.
+There are, however, some semantical differerences.
+</p>
+<p>
+The BLL and BB evolved separately, and have different implementations.
+This means that the bind expressions from the BB cannot be used within
+bind expressions, or within other type of lambda expressions, of the BLL.
+The same holds for using BLL bind expressions in the BB.
+The libraries can coexist, however, as
+the names of the BB library are in <code class="literal">boost</code> namespace,
+whereas the BLL names are in <code class="literal">boost::lambda</code> namespace.
+</p>
+<p>
+The BLL requires a compiler that is reasonably conformant to the
+C++ standard, whereas the BB library is more portable, and works with
+a larger set of compilers.
+</p>
+<p>
+The following two sections describe what are the semantic differences
+between the bind expressions in BB and BLL.
+</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1246134"></a>First argument of bind expression</h5></div></div></div>
+
+In BB the first argument of the bind expression, the target function,
+is treated differently from the other arguments,
+as no argument substitution takes place within that argument.
+In BLL the first argument is not a special case in this respect.
+
+For example:
+
+<pre class="programlisting">
+template&lt;class F&gt;
+int foo(const F&amp; f) {
+ int x;
+ ..
+ bind(f, _1)(x);
+ ...
+}
+</pre>
+<pre class="programlisting">
+int bar(int, int);
+nested(bind(bar, 1, _1));
+</pre>
+
+The bind expression inside <code class="literal">foo</code> becomes:
+<pre class="programlisting">
+bind(bind(bar, 1, _1), _1)(x)
+</pre>
+
+The BLL interpretes this as:
+<pre class="programlisting">
+bar(1, x)(x)
+</pre>
+whereas the BB library as
+<pre class="programlisting">
+bar(1, x)
+</pre>
+
+To get this functionality in BLL, the bind expression inside the <code class="literal">foo</code> function can be written as:
+<pre class="programlisting">
+bind(unlambda(f), _1)(x);
+</pre>
+as explained in <a href="le_in_details.html#lambda.unlambda" title="Unlambda">the section called &#8220;Unlambda&#8221;</a>.
+
+</div>
+<p>
+The BB library supports up to nine placeholders, while the BLL
+defines only three placeholders.
+The rationale for not providing more, is that the highest arity of the
+function objects accepted by any STL algorithm is two.
+The placeholder count is easy to increase in the BB library.
+In BLL it is possible, but more laborous.
+The BLL currently passes the actual arguments to the lambda functors
+internally just as they are and does not wrap them inside a tuple object.
+The reason for this is that some widely used compilers are not capable
+of optimizing the intermediate tuple objects away.
+The creation of the intermediate tuples would cause a significant
+performance hit, particularly for the simplest (and thus the most common)
+lambda functors.
+We are working on a hybrid approach, which will allow more placeholders
+but not compromise the performance of simple lambda functors.
+</p>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s07.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="s09.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/s09.html b/doc/html/lambda/s09.html
new file mode 100644
index 0000000000..ac7745e338
--- /dev/null
+++ b/doc/html/lambda/s09.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Contributors</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="s08.html" title="Relation to other Boost libraries">
+<link rel="next" href="../apa.html" title="Appendix A. Rationale for some of the design decisions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s08.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="../apa.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="id1246205"></a>Contributors</h3></div></div></div>
+
+The main body of the library was written by Jaakko Järvi and Gary Powell.
+We've got outside help, suggestions and ideas from Jeremy Siek, Peter Higley, Peter Dimov, Valentin Bonnard, William Kempf.
+We would particularly like to mention Joel de Guzmann and his work with
+Phoenix which has influenced BLL significantly, making it considerably simpler
+to extend the library with new features.
+
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s08.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="../apa.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lambda/using_library.html b/doc/html/lambda/using_library.html
new file mode 100644
index 0000000000..4e8e98dda9
--- /dev/null
+++ b/doc/html/lambda/using_library.html
@@ -0,0 +1,310 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Using the library</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../lambda.html" title="Chapter 6. Boost.Lambda">
+<link rel="prev" href="s03.html" title="Introduction">
+<link rel="next" href="le_in_details.html" title="Lambda expressions in details">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="le_in_details.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="lambda.using_library"></a>Using the library</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="using_library.html#lambda.introductory_examples">Introductory Examples</a></span></dt>
+<dt><span class="section"><a href="using_library.html#lambda.parameter_and_return_types">Parameter and return types of lambda functors</a></span></dt>
+<dt><span class="section"><a href="using_library.html#lambda.actual_arguments_to_lambda_functors">About actual arguments to lambda functors</a></span></dt>
+<dt><span class="section"><a href="using_library.html#lambda.storing_bound_arguments">Storing bound arguments in lambda functions</a></span></dt>
+</dl></div>
+<p>
+The purpose of this section is to introduce the basic functionality of the library.
+There are quite a lot of exceptions and special cases, but discussion of them is postponed until later sections.
+
+
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.introductory_examples"></a>Introductory Examples</h4></div></div></div>
+<p>
+ In this section we give basic examples of using BLL lambda expressions in STL algorithm invocations.
+ We start with some simple expressions and work up.
+ First, we initialize the elements of a container, say, a <code class="literal">list</code>, to the value <code class="literal">1</code>:
+
+
+ </p>
+<pre class="programlisting">
+list&lt;int&gt; v(10);
+for_each(v.begin(), v.end(), _1 = 1);</pre>
+<p>
+
+ The expression <code class="literal">_1 = 1</code> creates a lambda functor which assigns the value <code class="literal">1</code> to every element in <code class="literal">v</code>.<sup>[<a name="id1223205" href="#ftn.id1223205">1</a>]</sup></p>
+<p>
+ Next, we create a container of pointers and make them point to the elements in the first container <code class="literal">v</code>:
+
+ </p>
+<pre class="programlisting">
+vector&lt;int*&gt; vp(10);
+transform(v.begin(), v.end(), vp.begin(), &amp;_1);</pre>
+<p>
+
+The expression <code class="literal">&amp;_1</code> creates a function object for getting the address of each element in <code class="literal">v</code>.
+The addresses get assigned to the corresponding elements in <code class="literal">vp</code>.
+ </p>
+<p>
+ The next code fragment changes the values in <code class="literal">v</code>.
+ For each element, the function <code class="literal">foo</code> is called.
+The original value of the element is passed as an argument to <code class="literal">foo</code>.
+The result of <code class="literal">foo</code> is assigned back to the element:
+
+
+ </p>
+<pre class="programlisting">
+int foo(int);
+for_each(v.begin(), v.end(), _1 = bind(foo, _1));</pre>
+<p>
+ The next step is to sort the elements of <code class="literal">vp</code>:
+
+ </p>
+<pre class="programlisting">sort(vp.begin(), vp.end(), *_1 &gt; *_2);</pre>
+<p>
+
+ In this call to <code class="literal">sort</code>, we are sorting the elements by their contents in descending order.
+ </p>
+<p>
+ Finally, the following <code class="literal">for_each</code> call outputs the sorted content of <code class="literal">vp</code> separated by line breaks:
+
+</p>
+<pre class="programlisting">
+for_each(vp.begin(), vp.end(), cout &lt;&lt; *_1 &lt;&lt; '\n');
+</pre>
+<p>
+
+Note that a normal (non-lambda) expression as subexpression of a lambda expression is evaluated immediately.
+This may cause surprises.
+For instance, if the previous example is rewritten as
+</p>
+<pre class="programlisting">
+for_each(vp.begin(), vp.end(), cout &lt;&lt; '\n' &lt;&lt; *_1);
+</pre>
+<p>
+the subexpression <code class="literal">cout &lt;&lt; '\n'</code> is evaluated immediately and the effect is to output a single line break, followed by the elements of <code class="literal">vp</code>.
+The BLL provides functions <code class="literal">constant</code> and <code class="literal">var</code> to turn constants and, respectively, variables into lambda expressions, and can be used to prevent the immediate evaluation of subexpressions:
+</p>
+<pre class="programlisting">
+for_each(vp.begin(), vp.end(), cout &lt;&lt; constant('\n') &lt;&lt; *_1);
+</pre>
+<p>
+These functions are described more thoroughly in <a href="le_in_details.html#lambda.delaying_constants_and_variables" title="Delaying constants and variables">the section called &#8220;Delaying constants and variables&#8221;</a></p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.parameter_and_return_types"></a>Parameter and return types of lambda functors</h4></div></div></div>
+<p>
+ During the invocation of a lambda functor, the actual arguments are substituted for the placeholders.
+ The placeholders do not dictate the type of these actual arguments.
+ The basic rule is that a lambda function can be called with arguments of any types, as long as the lambda expression with substitutions performed is a valid C++ expression.
+ As an example, the expression
+ <code class="literal">_1 + _2</code> creates a binary lambda functor.
+ It can be called with two objects of any types <code class="literal">A</code> and <code class="literal">B</code> for which <code class="literal">operator+(A,B)</code> is defined (and for which BLL knows the return type of the operator, see below).
+ </p>
+<p>
+ C++ lacks a mechanism to query a type of an expression.
+ However, this precise mechanism is crucial for the implementation of C++ lambda expressions.
+ Consequently, BLL includes a somewhat complex type deduction system which uses a set of traits classes for deducing the resulting type of lambda functions.
+ It handles expressions where the operands are of built-in types and many of the expressions with operands of standard library types.
+ Many of the user defined types are covered as well, particularly if the user defined operators obey normal conventions in defining the return types.
+ </p>
+<p>
+ There are, however, cases when the return type cannot be deduced. For example, suppose you have defined:
+
+ </p>
+<pre class="programlisting">C operator+(A, B);</pre>
+<p>
+
+ The following lambda function invocation fails, since the return type cannot be deduced:
+
+ </p>
+<pre class="programlisting">A a; B b; (_1 + _2)(a, b);</pre>
+<p>
+ There are two alternative solutions to this.
+ The first is to extend the BLL type deduction system to cover your own types (see <a href="extending.html" title="Extending return type deduction system">the section called &#8220;Extending return type deduction system&#8221;</a>).
+ The second is to use a special lambda expression (<code class="literal">ret</code>) which defines the return type in place (see <a href="le_in_details.html#lambda.overriding_deduced_return_type" title="Overriding the deduced return type">the section called &#8220;Overriding the deduced return type&#8221;</a>):
+
+ </p>
+<pre class="programlisting">A a; B b; ret&lt;C&gt;(_1 + _2)(a, b);</pre>
+<p>
+ For bind expressions, the return type can be defined as a template argument of the bind function as well:
+ </p>
+<pre class="programlisting">bind&lt;int&gt;(foo, _1, _2);</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.actual_arguments_to_lambda_functors"></a>About actual arguments to lambda functors</h4></div></div></div>
+<p>A general restriction for the actual arguments is that they cannot be non-const rvalues.
+ For example:
+
+</p>
+<pre class="programlisting">
+int i = 1; int j = 2;
+(_1 + _2)(i, j); // ok
+(_1 + _2)(1, 2); // error (!)
+</pre>
+<p>
+
+ This restriction is not as bad as it may look.
+ Since the lambda functors are most often called inside STL-algorithms,
+ the arguments originate from dereferencing iterators and the dereferencing operators seldom return rvalues.
+ And for the cases where they do, there are workarounds discussed in
+<a href="le_in_details.html#lambda.rvalues_as_actual_arguments" title="Rvalues as actual arguments to lambda functors">the section called &#8220;Rvalues as actual arguments to lambda functors&#8221;</a>.
+
+
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="lambda.storing_bound_arguments"></a>Storing bound arguments in lambda functions</h4></div></div></div>
+<p>
+
+By default, temporary const copies of the bound arguments are stored
+in the lambda functor.
+
+This means that the value of a bound argument is fixed at the time of the
+creation of the lambda function and remains constant during the lifetime
+of the lambda function object.
+For example:
+</p>
+<pre class="programlisting">
+int i = 1;
+(_1 = 2, _1 + i)(i);
+</pre>
+<p>
+The comma operator is overloaded to combine lambda expressions into a sequence;
+the resulting unary lambda functor first assigns 2 to its argument,
+then adds the value of <code class="literal">i</code> to it.
+The value of the expression in the last line is 3, not 4.
+In other words, the lambda expression that is created is
+<code class="literal">lambda x.(x = 2, x + 1)</code> rather than
+<code class="literal">lambda x.(x = 2, x + i)</code>.
+
+</p>
+<p>
+
+As said, this is the default behavior for which there are exceptions.
+The exact rules are as follows:
+
+</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p>
+
+The programmer can control the storing mechanism with <code class="literal">ref</code>
+and <code class="literal">cref</code> wrappers [<a href="../lambda.html#cit:boost::ref" title="[ref]"><span class="abbrev">ref</span></a>].
+
+Wrapping an argument with <code class="literal">ref</code>, or <code class="literal">cref</code>,
+instructs the library to store the argument as a reference,
+or as a reference to const respectively.
+
+For example, if we rewrite the previous example and wrap the variable
+<code class="literal">i</code> with <code class="literal">ref</code>,
+we are creating the lambda expression <code class="literal">lambda x.(x = 2, x + i)</code>
+and the value of the expression in the last line will be 4:
+
+</p>
+<pre class="programlisting">
+i = 1;
+(_1 = 2, _1 + ref(i))(i);
+</pre>
+<p>
+
+Note that <code class="literal">ref</code> and <code class="literal">cref</code> are different
+from <code class="literal">var</code> and <code class="literal">constant</code>.
+
+While the latter ones create lambda functors, the former do not.
+For example:
+
+</p>
+<pre class="programlisting">
+int i;
+var(i) = 1; // ok
+ref(i) = 1; // not ok, ref(i) is not a lambda functor
+</pre>
+<p>
+
+The functions <code class="literal">ref</code> and <code class="literal">cref</code> mostly
+exist for historical reasons,
+and <code class="literal">ref</code> can always
+be replaced with <code class="literal">var</code>, and <code class="literal">cref</code> with
+<code class="literal">constant_ref</code>.
+See <a href="le_in_details.html#lambda.delaying_constants_and_variables" title="Delaying constants and variables">the section called &#8220;Delaying constants and variables&#8221;</a> for details.
+The <code class="literal">ref</code> and <code class="literal">cref</code> functions are
+general purpose utility functions in Boost, and hence defined directly
+in the <code class="literal">boost</code> namespace.
+
+</p>
+</li>
+<li><p>
+Array types cannot be copied, they are thus stored as const reference by default.
+</p></li>
+<li>
+<p>
+For some expressions it makes more sense to store the arguments as references.
+
+For example, the obvious intention of the lambda expression
+<code class="literal">i += _1</code> is that calls to the lambda functor affect the
+value of the variable <code class="literal">i</code>,
+rather than some temporary copy of it.
+
+As another example, the streaming operators take their leftmost argument
+as non-const references.
+
+The exact rules are:
+
+</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>The left argument of compound assignment operators (<code class="literal">+=</code>, <code class="literal">*=</code>, etc.) are stored as references to non-const.</p></li>
+<li><p>If the left argument of <code class="literal">&lt;&lt;</code> or <code class="literal">&gt;&gt;</code> operator is derived from an instantiation of <code class="literal">basic_ostream</code> or respectively from <code class="literal">basic_istream</code>, the argument is stored as a reference to non-const.
+For all other types, the argument is stored as a copy.
+</p></li>
+<li><p>
+In pointer arithmetic expressions, non-const array types are stored as non-const references.
+This is to prevent pointer arithmetic making non-const arrays const.
+
+</p></li>
+</ul></div>
+</li>
+</ul></div>
+</div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id1223205" href="#id1223205">1</a>] </sup>
+Strictly taken, the C++ standard defines <code class="literal">for_each</code> as a <span class="emphasis"><em>non-modifying sequence operation</em></span>, and the function object passed to <code class="literal">for_each</code> should not modify its argument.
+The requirements for the arguments of <code class="literal">for_each</code> are unnecessary strict, since as long as the iterators are <span class="emphasis"><em>mutable</em></span>, <code class="literal">for_each</code> accepts a function object that can have side-effects on their argument.
+Nevertheless, it is straightforward to provide another function template with the functionality of<code class="literal">std::for_each</code> but more fine-grained requirements for its arguments.
+</p></div>
+</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 © 1999-2004 Jaakko Järvi, Gary Powell</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../lambda.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="le_in_details.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/last_finder.html b/doc/html/last_finder.html
new file mode 100644
index 0000000000..723ef05aef
--- /dev/null
+++ b/doc/html/last_finder.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function last_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="first_finder.html" title="Function first_finder">
+<link rel="next" href="nth_finder.html" title="Function nth_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="nth_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="last_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function last_finder</span></h2>
+<p>boost::algorithm::last_finder &#8212; "Last" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> last_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> last_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search, PredicateT Comp);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1324847"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">last_finder</code> . The finder searches for the last occurrence of the string in a given input. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">last_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="nth_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/last_kday_of_month.html b/doc/html/last_kday_of_month.html
new file mode 100644
index 0000000000..2d48763547
--- /dev/null
+++ b/doc/html/last_kday_of_month.html
@@ -0,0 +1,98 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template last_kday_of_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="first_kday_of_month.html" title="Class template first_kday_of_month">
+<link rel="next" href="first_kday_after.html" title="Class template first_kday_after">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_after.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="last_kday_of_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template last_kday_of_month</span></h2>
+<p>boost::date_time::last_kday_of_month &#8212; Calculate something like Last Sunday of January. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> last_kday_of_month
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::year_based_generator&lt; date_type &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type        calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_of_week_type day_of_week_type;
+  <span class="bold"><strong>typedef</strong></span> calendar_type::month_type       month_type;      
+  <span class="bold"><strong>typedef</strong></span> calendar_type::year_type        year_type;       
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type        duration_type;   
+
+  <span class="emphasis"><em>// <a href="last_kday_of_month.html#last_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="last_kday_of_month.html#id1078103-bb">last_kday_of_month</a>(day_of_week_type, month_type);
+
+  <span class="emphasis"><em>// <a href="last_kday_of_month.html#id1110595-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="last_kday_of_month.html#id1110601-bb">get_date</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="last_kday_of_month.html#id1103665-bb">month</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="last_kday_of_month.html#id1103678-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="last_kday_of_month.html#id857894-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1075425"></a><h2>Description</h2>
+<p>Useful generator functor for finding holidays and daylight savings Get the last day of the month and then calculate the difference to the last previous day.
+</p>
+<div class="refsect2" lang="en">
+<a name="id1075433"></a><h3>
+<a name="last_kday_of_monthconstruct-copy-destruct"></a><code class="computeroutput">last_kday_of_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1078103-bb"></a>last_kday_of_month(day_of_week_type dow, month_type m);</pre>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">dow</span></dt>
+<dd><p>The day of week, eg: Sunday, Monday, etc </p></dd>
+<dt><span class="term">m</span></dt>
+<dd><p>The month of the year, eg: Jan, Feb, Mar, etc </p></dd>
+</dl>
+</div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1075489"></a><h3>
+<a name="id1110595-bb"></a><code class="computeroutput">last_kday_of_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id1110601-bb"></a>get_date(year_type year) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id1103665-bb"></a>month() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id1103678-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id857894-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a string formatted as "M4.5.0" ==&gt; last Sunday in April. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_kday_of_month.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_after.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/last_last_rule_spec.html b/doc/html/last_last_rule_spec.html
new file mode 100644
index 0000000000..c9c481e3f8
--- /dev/null
+++ b/doc/html/last_last_rule_spec.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct last_last_rule_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id962272" title="Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;">
+<link rel="prev" href="first_last_rule_spec.html" title="Struct first_last_rule_spec">
+<link rel="next" href="nth_last_rule_spec.html" title="Struct nth_last_rule_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="nth_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="last_last_rule_spec"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct last_last_rule_spec</span></h2>
+<p>boost::local_time::last_last_rule_spec &#8212; </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"><strong>struct</strong></span> last_last_rule_spec {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date               date_type; 
+  <span class="bold"><strong>typedef</strong></span> gregorian::last_kday_of_month start_rule;
+  <span class="bold"><strong>typedef</strong></span> gregorian::last_kday_of_month end_rule;  
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="first_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="nth_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/last_value.html b/doc/html/last_value.html
new file mode 100644
index 0000000000..c37e1c3095
--- /dev/null
+++ b/doc/html/last_value.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template last_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id936232" title="Header &lt;boost/last_value.hpp&gt;">
+<link rel="prev" href="visit_each.html" title="Function template visit_each">
+<link rel="next" href="id906590-bb.html" title="Class last_value&lt;void&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="visit_each.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id936232"><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="id906590-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="last_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template last_value</span></h2>
+<p>boost::last_value &#8212; Evaluate an <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a> sequence and return the
+ last value in the sequence.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> last_value {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T result_type;
+
+  <span class="emphasis"><em>// <a href="last_value.html#id731942-bb">invocation</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a>&gt;
+    <span class="type">result_type</span> <a href="last_value.html#id901956-bb"><span class="bold"><strong>operator</strong></span>()</a>(InputIterator, InputIterator) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1286971"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1286974"></a><h3>
+<a name="id731942-bb"></a><code class="computeroutput">last_value</code> invocation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> <a href="InputIterator.html" title="Concept InputIterator">InputIterator</a>&gt;
+  <span class="type">result_type</span> <a name="id901956-bb"></a><span class="bold"><strong>operator</strong></span>()(InputIterator first, InputIterator last) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">first != last</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Dereferences every iterator in the sequence <code class="computeroutput">[first, last)</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of dereferencing the iterator <code class="computeroutput">last-1</code>.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1287077"></a><h3>Specializations</h3>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="id906590-bb.html" title="Class last_value&lt;void&gt;">Class last_value&lt;void&gt;</a></p></li></ul></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="visit_each.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id936232"><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="id906590-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/libraries.html b/doc/html/libraries.html
new file mode 100644
index 0000000000..31f2905276
--- /dev/null
+++ b/doc/html/libraries.html
@@ -0,0 +1,339 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Part I. The Boost C++ Libraries</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="index.html" title="The Boost C++ Libraries">
+<link rel="prev" href="index.html" title="The Boost C++ Libraries">
+<link rel="next" href="libraries/s02.html" title="Libraries Listed by Category">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</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="libraries/s02.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="part" lang="en">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="libraries"></a>The Boost C++ Libraries</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="chapter"><a href="any.html">1. Boost.Any</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="any.html#id969830">Introduction</a></span></dt>
+<dt><span class="section"><a href="any/s02.html">Examples</a></span></dt>
+<dt><span class="section"><a href="any/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="any/s04.html">Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="array.html">2. Boost.Array</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="array.html#array.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="array/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="array/rationale.html">Design Rationale</a></span></dt>
+<dt><span class="section"><a href="array/more/info.html">For more information...</a></span></dt>
+<dt><span class="section"><a href="array/ack.html">Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="date_time.html">3. Boost.Date_Time</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="date_time.html#date_time.conceptual">Conceptual</a></span></dt>
+<dt><span class="section"><a href="date_time/examples/general_usage_examples.html">General Usage Examples</a></span></dt>
+<dt><span class="section"><a href="date_time/gregorian.html">Gregorian</a></span></dt>
+<dt><span class="section"><a href="date_time/posix_time.html">Posix Time</a></span></dt>
+<dt><span class="section"><a href="date_time/local_time.html">Local Time</a></span></dt>
+<dt><span class="section"><a href="date_time/date_time_io.html">Date Time Input/Output</a></span></dt>
+<dt><span class="section"><a href="date_time/serialization.html">Serialization</a></span></dt>
+<dt><span class="section"><a href="date_time/details.html">Details</a></span></dt>
+<dt><span class="section"><a href="date_time/examples.html">Examples</a></span></dt>
+<dt><span class="section"><a href="date_time/doxy.html">Library Reference</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="function.html">4. Boost.Function</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="function.html#function.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="function/history.html">History &amp; Compatibility Notes</a></span></dt>
+<dt><span class="section"><a href="function/tutorial.html">Tutorial</a></span></dt>
+<dt><span class="section"><a href="function/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="function/faq.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="function/misc.html">Miscellaneous Notes</a></span></dt>
+<dt><span class="section"><a href="function/testsuite.html">Testsuite</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="hash.html">5. Boost.Functional/Hash</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="hash.html#hash.intro"> Introduction</a></span></dt>
+<dt><span class="section"><a href="hash/tutorial.html"> Tutorial</a></span></dt>
+<dt><span class="section"><a href="hash/custom.html"> Extending boost::hash for a custom data type</a></span></dt>
+<dt><span class="section"><a href="hash/combine.html"> Combining hash values</a></span></dt>
+<dt><span class="section"><a href="hash/portability.html"> Portability</a></span></dt>
+<dt><span class="section"><a href="hash/reference_.html"> Reference</a></span></dt>
+<dt><span class="section"><a href="hash/links.html"> Links</a></span></dt>
+<dt><span class="section"><a href="hash/acknowledgements.html"> Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="lambda.html">6. Boost.Lambda</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="lambda.html#introduction">In a nutshell</a></span></dt>
+<dt><span class="section"><a href="lambda/getting_started.html">Getting Started</a></span></dt>
+<dt><span class="section"><a href="lambda/s03.html">Introduction</a></span></dt>
+<dt><span class="section"><a href="lambda/using_library.html">Using the library</a></span></dt>
+<dt><span class="section"><a href="lambda/le_in_details.html">Lambda expressions in details</a></span></dt>
+<dt><span class="section"><a href="lambda/extending.html">Extending return type deduction system</a></span></dt>
+<dt><span class="section"><a href="lambda/s07.html">Practical considerations</a></span></dt>
+<dt><span class="section"><a href="lambda/s08.html">Relation to other Boost libraries</a></span></dt>
+<dt><span class="section"><a href="lambda/s09.html">Contributors</a></span></dt>
+<dt><span class="bibliography"><a href="lambda.html#id1246328">Bibliography</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="program_options.html">7. Boost.Program_options</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="program_options.html#id1246711">Introduction</a></span></dt>
+<dt><span class="section"><a href="program_options/tutorial.html">Tutorial</a></span></dt>
+<dt><span class="section"><a href="program_options/overview.html">Library Overview</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html">How To</a></span></dt>
+<dt><span class="section"><a href="program_options/design.html">Design Discussion</a></span></dt>
+<dt><span class="section"><a href="program_options/s06.html">Acknowledgements</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html">Reference</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ref.html">8. Boost.Ref</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ref.html#ref.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="ref/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="ref/ack.html">Acknowledgements</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="signals.html">9. Boost.Signals</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="signals.html#id1279939">Introduction</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html">Tutorial</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="signals/s04.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="signals/s05.html">Design Overview</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html">Design Rationale</a></span></dt>
+<dt><span class="section"><a href="signals/tests.html">Testsuite</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="boost_staticassert.html">10. Boost.StaticAssert</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_staticassert.html#boost_staticassert.intro"> Overview and Tutorial</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert/how.html"> How it works</a></span></dt>
+<dt><span class="section"><a href="boost_staticassert/test.html"> Test Programs</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="string_algo.html">11. Boost String Algorithms Library</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo.html#string_algo.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="string_algo/release_notes.html">Release Notes</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html">Usage</a></span></dt>
+<dt><span class="section"><a href="string_algo/quickref.html">Quick Reference</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html">Design Topics</a></span></dt>
+<dt><span class="section"><a href="string_algo/concept.html">Concepts</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="string_algo/rationale.html">Rationale</a></span></dt>
+<dt><span class="section"><a href="string_algo/env.html">Environment</a></span></dt>
+<dt><span class="section"><a href="string_algo/credits.html">Credits</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="threads.html">12. Boost.Threads</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads.html#threads.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="threads/design.html">Design</a></span></dt>
+<dt><span class="section"><a href="threads/concepts.html">Concepts</a></span></dt>
+<dt><span class="section"><a href="threads/rationale.html">Rationale</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="threads/faq.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="thread/configuration.html">Configuration</a></span></dt>
+<dt><span class="section"><a href="thread/build.html">Build</a></span></dt>
+<dt><span class="section"><a href="threads/implementation_notes.html">Implementation Notes</a></span></dt>
+<dt><span class="section"><a href="threads/release_notes.html">Release Notes</a></span></dt>
+<dt><span class="glossary"><a href="threads.html#threads.glossary">Glossary</a></span></dt>
+<dt><span class="section"><a href="thread/acknowledgements.html">Acknowledgements</a></span></dt>
+<dt><span class="bibliography"><a href="threads.html#threads.bibliography">Bibliography</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="tribool.html">13. Boost.Tribool</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="tribool.html#tribool.introduction">Introduction</a></span></dt>
+<dt><span class="section"><a href="tribool/tutorial.html">Tutorial</a></span></dt>
+<dt><span class="section"><a href="tribool/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="tribool/tests.html">Testsuite</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="boost_typetraits.html">14. Boost.TypeTraits</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_typetraits.html#boost_typetraits.intro"> Introduction</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/background.html"> Background and Tutorial</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category.html"> Type Traits by Category</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/user_defined.html"> User Defined Specializations</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/intrinsics.html"> Support for Compiler Intrinsics</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/mpl.html"> MPL Interoperability</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples.html"> Examples</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference.html"> Alphabetical Reference</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/credits.html"> Credits</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="variant.html">15. Boost.Variant</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="variant.html#variant.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="variant/tutorial.html">Tutorial</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html">Reference</a></span></dt>
+<dt><span class="section"><a href="variant/design.html">Design Overview</a></span></dt>
+<dt><span class="section"><a href="variant/misc.html">Miscellaneous Notes</a></span></dt>
+<dt><span class="section"><a href="variant/refs.html">References</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<p>
+ Documentation for some libraries is available in alternative formats:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="http://www.boost.org/doc/boost-doc-html.tar.gz" target="_top">HTML (tarred, gzipped)</a></li>
+<li><a href="http://www.boost.org/doc/boost.pdf" target="_top">PDF</a></li>
+<li><a href="http://www.boost.org/doc/boost-doc-man.tar.gz" target="_top">Unix man pages</a></li>
+<li><a href="../boost.docbook" target="_top">DocBook</a></li>
+<li><a href="../boost.fo" target="_top">XSL Formatting Objects</a></li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id968226"></a>Libraries Listed Alphabetically</h2></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="any.html" title="Chapter 1. Boost.Any">Any</a> -
+ Safe, generic container for single values of different value types
+ , from Kevlin Henney.</li>
+<li>
+<a href="array.html" title="Chapter 2. Boost.Array">Array</a> - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.</li>
+<li>
+<a href="../../libs/bind/index.html" target="_top">Bind</a> - Generalized binders for function/object/pointers and member functions, from Peter Dimov.</li>
+<li>
+<a href="hash.html" title="Chapter 5. Boost.Functional/Hash">Boost.Functional/Hash</a> -
+ A TR1 hash function object that can be extended to hash user
+ defined types , from Daniel James.</li>
+<li>
+<a href="boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">Boost.StaticAssert</a> -
+ Compile time diagnostics library , from John Maddock and Steve Cleary.</li>
+<li>
+<a href="boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">Boost.TypeTraits</a> -
+ Meta-programming support library , from various authors.</li>
+<li>
+<a href="../../libs/crc/index.html" target="_top">CRC</a> - Cyclic Redundancy Code, from Daryle Walker.</li>
+<li>
+<a href="../../libs/utility/call_traits.htm" target="_top">Call Traits</a> - Defines types for passing parameters, from John Maddock and Howard Hinnant.</li>
+<li>
+<a href="../../libs/compatibility/index.html" target="_top">Compatibility</a> - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.</li>
+<li>
+<a href="../../libs/compose/index.htm" target="_top">Compose</a> - Functional composition adapters for the STL, from Nicolai Josuttis.</li>
+<li>
+<a href="../../libs/utility/compressed_pair.htm" target="_top">Compressed Pair</a> - Empty member optimization, from John Maddock and Howard Hinnant.</li>
+<li>
+<a href="../../libs/concept_check/index.html" target="_top">Concept Check</a> - Tools for generic programming, from Jeremy Siek.</li>
+<li>
+<a href="../../libs/config/index.html" target="_top">Config</a> - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users, from John Maddock, Beman Dawes, and Vesa Karvonen.</li>
+<li>
+<a href="../../libs/conversion/index.html" target="_top">Conversion</a> - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney.</li>
+<li>
+<a href="date_time.html" title="Chapter 3. Boost.Date_Time">Date Time</a> - A set of facilities to ease programming with dates and times.
+ , from Jeff Garland.</li>
+<li>
+<a href="../../libs/dynamic_bitset/index.html" target="_top">Dynamic Bitset</a> - A runtime sized version of <code class="computeroutput">std::bitset</code>, from Jeremy Siek and Chuck Allison.</li>
+<li>
+<a href="../../libs/filesystem/index.html" target="_top">Filesystem</a> - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.</li>
+<li>
+<a href="../../libs/format/index.html" target="_top">Format</a> - Type-safe 'printf-like' format operations, from Samuel Krempp.</li>
+<li>
+<a href="function.html" title="Chapter 4. Boost.Function">Function</a> - Function object wrappers for deferred calls or callbacks, from Douglas Gregor.</li>
+<li>
+<a href="../../libs/functional/index.html" target="_top">Functional</a> - Enhanced function object adaptors, from Mark Rodgers.</li>
+<li>
+<a href="../../libs/graph/index.html" target="_top">Graph</a> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</li>
+<li>
+<a href="../../libs/io/index.html" target="_top">I/O State Savers</a> - Save I/O state to prevent jumbled data, from Daryle Walker.</li>
+<li>
+<a href="../../libs/integer/index.html" target="_top">Integer</a> - Headers to ease dealing with integral types, from various authors.</li>
+<li>
+<a href="../../libs/numeric/interval/doc/index.html" target="_top">Interval</a> - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Hervé Brönnimann, and Sylvain Pion.</li>
+<li>
+<a href="../../libs/utility/iterator_adaptors.htm" target="_top">Iterator Adaptors</a> - Adapt a base type into a standard conforming iterator, from Dave Abrahams, Jeremy Siek, and John Potter.</li>
+<li>
+<a href="lambda.html" title="Chapter 6. Boost.Lambda">Lambda</a> - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi.</li>
+<li>
+<a href="../../libs/mpl/index.html" target="_top">MPL</a> - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.</li>
+<li>
+<a href="../../libs/math/index.html" target="_top">Math</a> - Several contributions in the domain of mathematics, from various authors.</li>
+<li>
+<a href="../../libs/math/doc/common_factor.html" target="_top">Math/Common Factor</a> - Greatest common divisor and least common multiple, from Daryle Walker.</li>
+<li>
+<a href="../../libs/math/octonion/index.html" target="_top">Math/Octonion</a> - Octonions, from Hubert Holin.</li>
+<li>
+<a href="../../libs/math/quaternion/index.html" target="_top">Math/Quaternion</a> - Quaternions, from Hubert Holin.</li>
+<li>
+<a href="../../libs/math/special_functions/index.html" target="_top">Math/Special Functions</a> - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.</li>
+<li>
+<a href="../../libs/bind/mem_fn.html" target="_top">Mem_fn</a> - Generalized binders for member functions, from Peter Dimov.</li>
+<li>
+<a href="../../libs/multi_array/index.html" target="_top">Multi Array</a> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</li>
+<li>
+<a href="../../libs/utility/index.html" target="_top">Operators</a> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</li>
+<li>
+<a href="../../libs/optional/index.html" target="_top">Optional</a> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</li>
+<li>
+<a href="../../libs/pool/index.html" target="_top">Pool</a> - Memory pool management, from Steve Cleary.</li>
+<li>
+<a href="../../libs/preprocessor/index.html" target="_top">Preprocessor</a> - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.</li>
+<li>
+<a href="program_options.html" title="Chapter 7. Boost.Program_options">Program_options</a> -
+ Facilities to obtain configuration data from command line, config files
+ and other sources, from Vladimir Prus.</li>
+<li>
+<a href="../../libs/property_map/index.html" target="_top">Property Map</a> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</li>
+<li>
+<a href="../../libs/python/index.html" target="_top">Python</a> - Reflects C++ classes and functions into <a href="http://www.python.org" target="_top">Python</a>, from Dave Abrahams.</li>
+<li>
+<a href="../../libs/random/index.html" target="_top">Random</a> - A complete system for random number generation, from Jens Maurer.</li>
+<li>
+<a href="../../libs/rational/index.html" target="_top">Rational</a> - A rational number class, from Paul Moore.</li>
+<li>
+<a href="ref.html" title="Chapter 8. Boost.Ref">Ref</a> - A utility library for passing references to generic functions, from Jaakko Järvi, Peter Dimov, Douglas Gregor, and Dave Abrahams.</li>
+<li>
+<a href="../../libs/regex/index.html" target="_top">Regex</a> - Regular expression library, from John Maddock.</li>
+<li>
+<a href="../../libs/serialization/index.html" target="_top">Serialization</a> - Serialization of C++ objects for persistence and marshalling, from Robert Ramey.</li>
+<li>
+<a href="signals.html" title="Chapter 9. Boost.Signals">Signals</a> - Managed signals &amp; slots callback implementation, from Douglas Gregor.</li>
+<li>
+<a href="../../libs/smart_ptr/index.html" target="_top">Smart Pointer</a> - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.</li>
+<li>
+<a href="../../libs/spirit/index.html" target="_top">Spirit</a> - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team .</li>
+<li>
+<a href="string_algo.html" title="Chapter 11. Boost String Algorithms Library">String Algorithms</a> -
+ A set of generic string-related algorithms and utilities
+ , from Pavol Droba.</li>
+<li>
+<a href="../../libs/test/index.html" target="_top">Test</a> - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.</li>
+<li>
+<a href="threads.html" title="Chapter 12. Boost.Threads">Threads</a> - Portable C++ multi-threading, from William Kempf.</li>
+<li>
+<a href="../../libs/timer/index.html" target="_top">Timer</a> - Event timer, progress timer, and progress display classes, from Beman Dawes.</li>
+<li>
+<a href="../../libs/tokenizer/index.html" target="_top">Tokenizer</a> - Break of a string or other character sequence into a series of tokens, from John Bandela.</li>
+<li>
+<a href="tribool.html" title="Chapter 13. Boost.Tribool">Tribool</a> - Three-state boolean type, from Douglas Gregor.</li>
+<li>
+<a href="../../libs/tuple/index.html" target="_top">Tuple</a> - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.</li>
+<li>
+<a href="../../libs/utility/index.html" target="_top">Utility</a> - Class noncopyable plus <code class="computeroutput">checked_delete</code>, <code class="computeroutput">checked_array_delete</code>, <code class="computeroutput">next</code>, <code class="computeroutput">prior</code> function templates, plus base-from-member idiom, from Dave Abrahams and others .</li>
+<li>
+<a href="variant.html" title="Chapter 15. Boost.Variant">Variant</a> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</li>
+<li>
+<a href="../../libs/numeric/ublas/index.html" target="_top">uBLAS</a> - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.</li>
+</ul></div>
+</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></small></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="libraries/s02.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/libraries/s02.html b/doc/html/libraries/s02.html
new file mode 100644
index 0000000000..6deda800ff
--- /dev/null
+++ b/doc/html/libraries/s02.html
@@ -0,0 +1,385 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Libraries Listed by Category</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="../libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="next" href="../any.html" title="Chapter 1. Boost.Any">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../libraries.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../libraries.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="../any.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id968869"></a>Libraries Listed by Category</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s02.html#id968872">
+ String and text processing
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id968918">
+ Containers
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id968991">
+ Iterators
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969037">
+ Algorithms
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969086">
+ Function objects and higher-order programming
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969190">
+ Generic programming
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969256">
+ Template metaprogramming
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969273">
+ Preprocessor metaprogramming
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969291">
+ Concurrent programming
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969308">
+ Math and numerics
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969431">
+ Correctness and testing
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969458">
+ Data structures
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969527">
+ Input/Output
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969562">
+ Inter-language support
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969585">
+ Memory
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969643">
+ Parsing
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969660">
+ Miscellaneous
+ </a></span></dt>
+<dt><span class="section"><a href="s02.html#id969777">
+ Broken compiler workarounds
+ </a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id968872"></a>
+ String and text processing
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/format/index.html" target="_top">Format</a> - Type-safe 'printf-like' format operations, from Samuel Krempp.</li>
+<li>
+<a href="../../../libs/regex/index.html" target="_top">Regex</a> - Regular expression library, from John Maddock.</li>
+<li>
+<a href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">String Algorithms</a> -
+ A set of generic string-related algorithms and utilities
+ , from Pavol Droba.</li>
+<li>
+<a href="../../../libs/tokenizer/index.html" target="_top">Tokenizer</a> - Break of a string or other character sequence into a series of tokens, from John Bandela.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id968918"></a>
+ Containers
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../array.html" title="Chapter 2. Boost.Array">Array</a> - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.</li>
+<li>
+<a href="../../../libs/dynamic_bitset/index.html" target="_top">Dynamic Bitset</a> - A runtime sized version of <code class="computeroutput">std::bitset</code>, from Jeremy Siek and Chuck Allison.</li>
+<li>
+<a href="../../../libs/graph/index.html" target="_top">Graph</a> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</li>
+<li>
+<a href="../../../libs/multi_array/index.html" target="_top">Multi Array</a> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</li>
+<li>
+<a href="../../../libs/property_map/index.html" target="_top">Property Map</a> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</li>
+<li>
+<a href="../variant.html" title="Chapter 15. Boost.Variant">Variant</a> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id968991"></a>
+ Iterators
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/graph/index.html" target="_top">Graph</a> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</li>
+<li>
+<a href="../../../libs/utility/iterator_adaptors.htm" target="_top">Iterator Adaptors</a> - Adapt a base type into a standard conforming iterator, from Dave Abrahams, Jeremy Siek, and John Potter.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Operators</a> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</li>
+<li>
+<a href="../../../libs/tokenizer/index.html" target="_top">Tokenizer</a> - Break of a string or other character sequence into a series of tokens, from John Bandela.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969037"></a>
+ Algorithms
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/graph/index.html" target="_top">Graph</a> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Utility</a> - Class noncopyable plus <code class="computeroutput">checked_delete</code>, <code class="computeroutput">checked_array_delete</code>, <code class="computeroutput">next</code>, <code class="computeroutput">prior</code> function templates, plus base-from-member idiom, from Dave Abrahams and others .</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969086"></a>
+ Function objects and higher-order programming
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/bind/index.html" target="_top">Bind</a> - Generalized binders for function/object/pointers and member functions, from Peter Dimov.</li>
+<li>
+<a href="../hash.html" title="Chapter 5. Boost.Functional/Hash">Boost.Functional/Hash</a> -
+ A TR1 hash function object that can be extended to hash user
+ defined types , from Daniel James.</li>
+<li>
+<a href="../../../libs/compose/index.htm" target="_top">Compose</a> - Functional composition adapters for the STL, from Nicolai Josuttis.</li>
+<li>
+<a href="../function.html" title="Chapter 4. Boost.Function">Function</a> - Function object wrappers for deferred calls or callbacks, from Douglas Gregor.</li>
+<li>
+<a href="../../../libs/functional/index.html" target="_top">Functional</a> - Enhanced function object adaptors, from Mark Rodgers.</li>
+<li>
+<a href="../lambda.html" title="Chapter 6. Boost.Lambda">Lambda</a> - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi.</li>
+<li>
+<a href="../../../libs/bind/mem_fn.html" target="_top">Mem_fn</a> - Generalized binders for member functions, from Peter Dimov.</li>
+<li>
+<a href="../ref.html" title="Chapter 8. Boost.Ref">Ref</a> - A utility library for passing references to generic functions, from Jaakko Järvi, Peter Dimov, Douglas Gregor, and Dave Abrahams.</li>
+<li>
+<a href="../signals.html" title="Chapter 9. Boost.Signals">Signals</a> - Managed signals &amp; slots callback implementation, from Douglas Gregor.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969190"></a>
+ Generic programming
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">Boost.StaticAssert</a> -
+ Compile time diagnostics library , from John Maddock and Steve Cleary.</li>
+<li>
+<a href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">Boost.TypeTraits</a> -
+ Meta-programming support library , from various authors.</li>
+<li>
+<a href="../../../libs/utility/call_traits.htm" target="_top">Call Traits</a> - Defines types for passing parameters, from John Maddock and Howard Hinnant.</li>
+<li>
+<a href="../../../libs/concept_check/index.html" target="_top">Concept Check</a> - Tools for generic programming, from Jeremy Siek.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Operators</a> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</li>
+<li>
+<a href="../../../libs/property_map/index.html" target="_top">Property Map</a> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969256"></a>
+ Template metaprogramming
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact><li>
+<a href="../../../libs/mpl/index.html" target="_top">MPL</a> - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.</li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969273"></a>
+ Preprocessor metaprogramming
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact><li>
+<a href="../../../libs/preprocessor/index.html" target="_top">Preprocessor</a> - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.</li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969291"></a>
+ Concurrent programming
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact><li>
+<a href="../threads.html" title="Chapter 12. Boost.Threads">Threads</a> - Portable C++ multi-threading, from William Kempf.</li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969308"></a>
+ Math and numerics
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/integer/index.html" target="_top">Integer</a> - Headers to ease dealing with integral types, from various authors.</li>
+<li>
+<a href="../../../libs/numeric/interval/doc/index.html" target="_top">Interval</a> - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Hervé Brönnimann, and Sylvain Pion.</li>
+<li>
+<a href="../../../libs/math/index.html" target="_top">Math</a> - Several contributions in the domain of mathematics, from various authors.</li>
+<li>
+<a href="../../../libs/math/doc/common_factor.html" target="_top">Math/Common Factor</a> - Greatest common divisor and least common multiple, from Daryle Walker.</li>
+<li>
+<a href="../../../libs/math/octonion/index.html" target="_top">Math/Octonion</a> - Octonions, from Hubert Holin.</li>
+<li>
+<a href="../../../libs/math/quaternion/index.html" target="_top">Math/Quaternion</a> - Quaternions, from Hubert Holin.</li>
+<li>
+<a href="../../../libs/math/special_functions/index.html" target="_top">Math/Special Functions</a> - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.</li>
+<li>
+<a href="../../../libs/multi_array/index.html" target="_top">Multi Array</a> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Operators</a> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</li>
+<li>
+<a href="../../../libs/random/index.html" target="_top">Random</a> - A complete system for random number generation, from Jens Maurer.</li>
+<li>
+<a href="../../../libs/rational/index.html" target="_top">Rational</a> - A rational number class, from Paul Moore.</li>
+<li>
+<a href="../../../libs/numeric/ublas/index.html" target="_top">uBLAS</a> - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969431"></a>
+ Correctness and testing
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/concept_check/index.html" target="_top">Concept Check</a> - Tools for generic programming, from Jeremy Siek.</li>
+<li>
+<a href="../../../libs/test/index.html" target="_top">Test</a> - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969458"></a>
+ Data structures
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../any.html" title="Chapter 1. Boost.Any">Any</a> -
+ Safe, generic container for single values of different value types
+ , from Kevlin Henney.</li>
+<li>
+<a href="../../../libs/utility/compressed_pair.htm" target="_top">Compressed Pair</a> - Empty member optimization, from John Maddock and Howard Hinnant.</li>
+<li>
+<a href="../../../libs/optional/index.html" target="_top">Optional</a> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</li>
+<li>
+<a href="../program_options.html" title="Chapter 7. Boost.Program_options">Program_options</a> -
+ Facilities to obtain configuration data from command line, config files
+ and other sources, from Vladimir Prus.</li>
+<li>
+<a href="../../../libs/tuple/index.html" target="_top">Tuple</a> - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.</li>
+<li>
+<a href="../variant.html" title="Chapter 15. Boost.Variant">Variant</a> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969527"></a>
+ Input/Output
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/format/index.html" target="_top">Format</a> - Type-safe 'printf-like' format operations, from Samuel Krempp.</li>
+<li>
+<a href="../../../libs/io/index.html" target="_top">I/O State Savers</a> - Save I/O state to prevent jumbled data, from Daryle Walker.</li>
+<li>
+<a href="../../../libs/serialization/index.html" target="_top">Serialization</a> - Serialization of C++ objects for persistence and marshalling, from Robert Ramey.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969562"></a>
+ Inter-language support
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact><li>
+<a href="../../../libs/python/index.html" target="_top">Python</a> - Reflects C++ classes and functions into <a href="http://www.python.org" target="_top">Python</a>, from Dave Abrahams.</li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969585"></a>
+ Memory
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/pool/index.html" target="_top">Pool</a> - Memory pool management, from Steve Cleary.</li>
+<li>
+<a href="../../../libs/smart_ptr/index.html" target="_top">Smart Pointer</a> - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Utility</a> - Class noncopyable plus <code class="computeroutput">checked_delete</code>, <code class="computeroutput">checked_array_delete</code>, <code class="computeroutput">next</code>, <code class="computeroutput">prior</code> function templates, plus base-from-member idiom, from Dave Abrahams and others .</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969643"></a>
+ Parsing
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact><li>
+<a href="../../../libs/spirit/index.html" target="_top">Spirit</a> - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team .</li></ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969660"></a>
+ Miscellaneous
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/crc/index.html" target="_top">CRC</a> - Cyclic Redundancy Code, from Daryle Walker.</li>
+<li>
+<a href="../../../libs/utility/compressed_pair.htm" target="_top">Compressed Pair</a> - Empty member optimization, from John Maddock and Howard Hinnant.</li>
+<li>
+<a href="../../../libs/conversion/index.html" target="_top">Conversion</a> - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney.</li>
+<li>
+<a href="../date_time.html" title="Chapter 3. Boost.Date_Time">Date Time</a> - A set of facilities to ease programming with dates and times.
+ , from Jeff Garland.</li>
+<li>
+<a href="../../../libs/filesystem/index.html" target="_top">Filesystem</a> - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.</li>
+<li>
+<a href="../../../libs/optional/index.html" target="_top">Optional</a> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</li>
+<li>
+<a href="../../../libs/timer/index.html" target="_top">Timer</a> - Event timer, progress timer, and progress display classes, from Beman Dawes.</li>
+<li>
+<a href="../tribool.html" title="Chapter 13. Boost.Tribool">Tribool</a> - Three-state boolean type, from Douglas Gregor.</li>
+<li>
+<a href="../../../libs/utility/index.html" target="_top">Utility</a> - Class noncopyable plus <code class="computeroutput">checked_delete</code>, <code class="computeroutput">checked_array_delete</code>, <code class="computeroutput">next</code>, <code class="computeroutput">prior</code> function templates, plus base-from-member idiom, from Dave Abrahams and others .</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id969777"></a>
+ Broken compiler workarounds
+ </h3></div></div></div>
+<div class="itemizedlist"><ul type="disc" compact>
+<li>
+<a href="../../../libs/compatibility/index.html" target="_top">Compatibility</a> - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.</li>
+<li>
+<a href="../../../libs/config/index.html" target="_top">Config</a> - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users, from John Maddock, Beman Dawes, and Vesa Karvonen.</li>
+</ul></div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../libraries.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../libraries.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="../any.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/local_adjustor.html b/doc/html/local_adjustor.html
new file mode 100644
index 0000000000..2484671b97
--- /dev/null
+++ b/doc/html/local_adjustor.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template local_adjustor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045289" title="Header &lt;boost/date_time/local_time_adjustor.hpp&gt;">
+<link rel="prev" href="static_local_time_adjustor.html" title="Class template static_local_time_adjustor">
+<link rel="next" href="us_dst_trait.html" title="Struct template us_dst_trait">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static_local_time_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="us_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="local_adjustor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template local_adjustor</span></h2>
+<p>boost::date_time::local_adjustor &#8212; Template that simplifies the creation of local time calculator. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>short</strong></span> utc_offset, <span class="bold"><strong>typename</strong></span> dst_rule&gt;
+<span class="bold"><strong>class</strong></span> local_adjustor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type                                                                       time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type                                                                                date_type;         
+  <span class="bold"><strong>typedef</strong></span> <a href="static_local_time_adjustor.html" title="Class template static_local_time_adjustor">static_local_time_adjustor</a>&lt; time_type, dst_rule, <a href="utc_adjustment.html" title="Class template utc_adjustment">utc_adjustment</a>&lt; time_duration_type, utc_offset &gt; &gt; dst_adjustor;      
+
+  <span class="emphasis"><em>// <a href="local_adjustor.html#id900841-bb">public static functions</a></em></span>
+  <span class="type">time_type</span> <a href="local_adjustor.html#id1036251-bb">utc_to_local</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type">time_type</span> <a href="local_adjustor.html#id1043345-bb">local_to_utc</a>(<span class="bold"><strong>const</strong></span> time_type &amp;,
+                         date_time::dst_flags = date_time::calculate) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1108948"></a><h2>Description</h2>
+<p>Use this template to create the timezone to utc convertors as required.</p>
+<p>This class will also work for other regions that don't use dst and have a utc offset which is an integral number of hours.</p>
+<p><span class="bold"><strong>Template Parameters</strong></span> -time_type -- Time class to use -utc_offset -- Number hours local time is adjust from utc -use_dst -- true (default) if region uses dst, false otherwise For example: </p>
+<pre class="programlisting"> //eastern timezone is utc-5
+ typedef date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
+ typedef date_time::local_adjustor&lt;ptime, -6, us_dst&gt; us_central;
+ typedef date_time::local_adjustor&lt;ptime, -7, us_dst&gt; us_mountain;
+ typedef date_time::local_adjustor&lt;ptime, -8, us_dst&gt; us_pacific;
+ typedef date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
+</pre>
+<div class="refsect2" lang="en">
+<a name="id1108975"></a><h3>
+<a name="id900841-bb"></a><code class="computeroutput">local_adjustor</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id1036251-bb"></a>utc_to_local(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id1043345-bb"></a>local_to_utc(<span class="bold"><strong>const</strong></span> time_type &amp; t,
+                       date_time::dst_flags dst = date_time::calculate) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static_local_time_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="us_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/local_date_time_base.html b/doc/html/local_date_time_base.html
new file mode 100644
index 0000000000..671f792bfe
--- /dev/null
+++ b/doc/html/local_date_time_base.html
@@ -0,0 +1,214 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template local_date_time_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1106303" title="Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;">
+<link rel="prev" href="dst_not_valid.html" title="Struct dst_not_valid">
+<link rel="next" href="bad_offset.html" title="Struct bad_offset">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_not_valid.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="bad_offset.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="local_date_time_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template local_date_time_base</span></h2>
+<p>boost::local_time::local_date_time_base &#8212; Representation of "wall-clock" time in a particular time zone. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> utc_time_ = posix_time::ptime,
+         <span class="bold"><strong>typename</strong></span> tz_type = date_time::time_zone_base&lt;utc_time_&gt; &gt;
+<span class="bold"><strong>class</strong></span> local_date_time_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> utc_time_                         utc_time_type;     
+  <span class="bold"><strong>typedef</strong></span> utc_time_type::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> utc_time_type::date_type          date_type;         
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type          date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> utc_time_type::time_system_type   time_system_type;  
+
+  <span class="emphasis"><em>// <a href="local_date_time_base.html#local_date_time_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="local_date_time_base.html#id797648-bb">local_date_time_base</a>(utc_time_type, boost::shared_ptr&lt; tz_type &gt;);
+  <a href="local_date_time_base.html#id797704-bb">local_date_time_base</a>(date_type, time_duration_type,
+                       boost::shared_ptr&lt; tz_type &gt;, <span class="bold"><strong>bool</strong></span>);
+  <a href="local_date_time_base.html#id974993-bb">local_date_time_base</a>(date_type, time_duration_type,
+                       boost::shared_ptr&lt; tz_type &gt;, DST_CALC_OPTIONS);
+  <a href="local_date_time_base.html#id861299-bb">local_date_time_base</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;);
+  <a href="local_date_time_base.html#id932008-bb">local_date_time_base</a>(<span class="bold"><strong>const</strong></span> boost::date_time::special_values,
+                       boost::shared_ptr&lt; tz_type &gt; = boost::shared_ptr&lt; tz_type &gt;());
+  <a href="local_date_time_base.html#id967207-bb">~local_date_time_base</a>();
+
+  <span class="emphasis"><em>// <a href="local_date_time_base.html#id996753-bb">public member functions</a></em></span>
+  <span class="type">boost::shared_ptr&lt; tz_type &gt;</span> <a href="local_date_time_base.html#id996759-bb">zone</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id1046734-bb">is_dst</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">utc_time_type</span> <a href="local_date_time_base.html#id933763-bb">utc_time</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">utc_time_type</span> <a href="local_date_time_base.html#id933780-bb">local_time</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="local_date_time_base.html#id933798-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span>
+  <a href="local_date_time_base.html#id1046857-bb">local_time_in</a>(boost::shared_ptr&lt; tz_type &gt;,
+                time_duration_type = time_duration_type(0, 0, 0)) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="local_date_time_base.html#id1075953-bb">zone_name</a>(<span class="bold"><strong>bool</strong></span> = false) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="local_date_time_base.html#id794455-bb">zone_abbrev</a>(<span class="bold"><strong>bool</strong></span> = false) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="local_date_time_base.html#id793878-bb">zone_as_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id867549-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id872153-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id962191-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id684113-bb"><span class="bold"><strong>operator</strong></span>&lt;=</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id868972-bb"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="local_date_time_base.html#id1105376-bb"><span class="bold"><strong>operator</strong></span>&gt;=</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id899914-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id871891-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id940879-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id936930-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id1107585-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id1002341-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id1080214-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a href="local_date_time_base.html#id1106793-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_duration_type</span> <a href="local_date_time_base.html#id973239-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="local_date_time_base.html#id1038019-bb">public static functions</a></em></span>
+  <span class="type">time_is_dst_result</span>
+  <a href="local_date_time_base.html#id1076896-bb">check_dst</a>(date_type, time_duration_type, boost::shared_ptr&lt; tz_type &gt;) ;
+
+  <span class="emphasis"><em>// <a href="local_date_time_base.html#id825088-bb">private member functions</a></em></span>
+  <span class="type">utc_time_type</span>
+  <a href="local_date_time_base.html#id825094-bb">construction_adjustment</a>(utc_time_type, boost::shared_ptr&lt; tz_type &gt;, <span class="bold"><strong>bool</strong></span>) ;
+  <span class="type">std::string</span> <a href="local_date_time_base.html#id934716-bb">zone_as_offset</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1182373"></a><h2>Description</h2>
+<p>Representation of "wall-clock" time in a particular time zone Local_date_time_base holds a time value (date and time offset from 00:00) along with a time zone. The time value is stored as UTC and conversions to wall clock time are made as needed. This approach allows for operations between wall-clock times in different time zones, and daylight savings time considerations, to be made. Time zones are required to be in the form of a boost::shared_ptr&lt;time_zone_base&gt;. </p>
+<div class="refsect2" lang="en">
+<a name="id1182379"></a><h3>
+<a name="local_date_time_baseconstruct-copy-destruct"></a><code class="computeroutput">local_date_time_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id797648-bb"></a>local_date_time_base(utc_time_type t, boost::shared_ptr&lt; tz_type &gt; tz);</pre>
+<p>This constructor interprets the passed time as a UTC time. So, for example, if the passed timezone is UTC-5 then the time will be adjusted back 5 hours. The time zone allows for automatic calculation of whether the particular time is adjusted for daylight savings, etc. If the time zone shared pointer is null then time stays unadjusted.
+</p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">t</span></dt>
+<dd><p>A UTC time </p></dd>
+<dt><span class="term">tz</span></dt>
+<dd><p>Timezone for to adjust the UTC time to. </p></dd>
+</dl>
+</div>
+</li>
+<li>
+<pre class="literallayout"><a name="id797704-bb"></a>local_date_time_base(date_type d, time_duration_type td,
+                     boost::shared_ptr&lt; tz_type &gt; tz, <span class="bold"><strong>bool</strong></span> dst_flag);</pre>
+<p>This constructs a local time -- the passed time information understood to be in the passed tz. The DST flag must be passed to indicate whether the time is in daylight savings or not.
+</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ -- time_label_invalid if the time passed does not exist in the given locale. The non-existent case occurs typically during the shift-back from daylight savings time. When the clock is shifted forward a range of times (2 am to 3 am in the US) is skipped and hence is invalid. dst_not_valid if the DST flag is passed for a period where DST is not active. </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id974993-bb"></a>local_date_time_base(date_type d, time_duration_type td,
+                     boost::shared_ptr&lt; tz_type &gt; tz,
+                     DST_CALC_OPTIONS calc_option);</pre>
+<p>This constructs a local time -- the passed time information understood to be in the passed tz. The DST flag is calculated according to the specified rule. </p>
+</li>
+<li><pre class="literallayout"><a name="id861299-bb"></a>local_date_time_base(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs);</pre></li>
+<li><pre class="literallayout"><a name="id932008-bb"></a>local_date_time_base(<span class="bold"><strong>const</strong></span> boost::date_time::special_values sv,
+                     boost::shared_ptr&lt; tz_type &gt; tz = boost::shared_ptr&lt; tz_type &gt;());</pre></li>
+<li><pre class="literallayout"><a name="id967207-bb"></a>~local_date_time_base();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1182572"></a><h3>
+<a name="id996753-bb"></a><code class="computeroutput">local_date_time_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">boost::shared_ptr&lt; tz_type &gt;</span> <a name="id996759-bb"></a>zone() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1046734-bb"></a>is_dst() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">utc_time_type</span> <a name="id933763-bb"></a>utc_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">utc_time_type</span> <a name="id933780-bb"></a>local_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id933798-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns string in the form "2003-Aug-20 05:00:00 EDT". If time_zone is NULL the time zone abbreviation will be "UTC". The time zone abbrev will not be included if calling object is a special_value </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span>
+<a name="id1046857-bb"></a>local_time_in(boost::shared_ptr&lt; tz_type &gt; new_tz,
+              time_duration_type td = time_duration_type(0, 0, 0)) <span class="bold"><strong>const</strong></span>;</pre>
+<p>returns a local_date_time_base in the given time zone with the optional time_duration added. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id1075953-bb"></a>zone_name(<span class="bold"><strong>bool</strong></span> as_offset = false) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Optional bool parameter will return time zone as an offset (ie "+07:00" extended iso format). Empty string is returned for classes that do not use a time_zone </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id794455-bb"></a>zone_abbrev(<span class="bold"><strong>bool</strong></span> as_offset = false) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Optional bool parameter will return time zone as an offset (ie "+0700" iso format). Empty string is returned for classes that do not use a time_zone </p>
+</li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id793878-bb"></a>zone_as_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id867549-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id872153-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id962191-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id684113-bb"></a><span class="bold"><strong>operator</strong></span>&lt;=(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id868972-bb"></a><span class="bold"><strong>operator</strong></span>&gt;(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1105376-bb"></a><span class="bold"><strong>operator</strong></span>&gt;=(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id899914-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id871891-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id940879-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id936930-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id1107585-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id1002341-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id1080214-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a></span> <a name="id1106793-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id973239-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> <a href="local_date_time_base.html" title="Class template local_date_time_base">local_date_time_base</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1183422"></a><h3>
+<a name="id1038019-bb"></a><code class="computeroutput">local_date_time_base</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id1076896-bb"></a>check_dst(date_type d, time_duration_type td, boost::shared_ptr&lt; tz_type &gt; tz) ;</pre>
+<p>Determines if given time label is in daylight savings for given zone. Takes a date and time_duration representing a local time, along with time zone, and returns a time_is_dst_result object as result. </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1183466"></a><h3>
+<a name="id825088-bb"></a><code class="computeroutput">local_date_time_base</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">utc_time_type</span>
+<a name="id825094-bb"></a>construction_adjustment(utc_time_type t, boost::shared_ptr&lt; tz_type &gt; zone,
+                        <span class="bold"><strong>bool</strong></span> is_dst) ;</pre>
+<p>Adjust the passed in time to UTC? </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id934716-bb"></a>zone_as_offset(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td,
+                           <span class="bold"><strong>const</strong></span> std::string &amp; separator) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Simple formatting code -- todo remove this? </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_not_valid.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="bad_offset.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/lock_error.html b/doc/html/lock_error.html
new file mode 100644
index 0000000000..98fde74198
--- /dev/null
+++ b/doc/html/lock_error.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class lock_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id824356" title="Header &lt;boost/thread/exceptions.hpp&gt;">
+<link rel="prev" href="condition.html" title="Class condition">
+<link rel="next" href="thread_resource_error.html" title="Class thread_resource_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="condition.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id824356"><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="thread_resource_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="lock_error"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class lock_error</span></h2>
+<p>boost::lock_error &#8212; <p>The lock_error class defines an exception type thrown
+ to indicate a locking related error has been detected.</p></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"><strong>class</strong></span> lock_error : <span class="bold"><strong>public</strong></span> <span class="type">std::logical_error</span> {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="lock_error.html#lock_errorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="lock_error.html#id1283823-bb">lock_error</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1558093"></a><h2>Description</h2>
+<p>Examples of errors indicated by a lock_error exception
+ include a lock operation which can be determined to result in a
+ deadlock, or unlock operations attempted by a thread that does
+ not own the lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1558102"></a><h3>
+<a name="lock_errorconstruct-copy-destruct"></a><code class="computeroutput">lock_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1283823-bb"></a>lock_error();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <code class="computeroutput">lock_error</code> object.
+ </p>
+</li></ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="condition.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id824356"><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="thread_resource_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/make_find_iterator.html b/doc/html/make_find_iterator.html
new file mode 100644
index 0000000000..7b117c47b6
--- /dev/null
+++ b/doc/html/make_find_iterator.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template make_find_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1113894" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">
+<link rel="prev" href="split_iterator.html" title="Class template split_iterator">
+<link rel="next" href="make_split_iterator.html" title="Function template make_split_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="make_split_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="make_find_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template make_find_iterator</span></h2>
+<p>boost::algorithm::make_find_iterator &#8212; find iterator construction helper </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+  <span class="type"><a href="find_iterator.html" title="Class template find_iterator">find_iterator</a>&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  make_find_iterator(RangeT &amp; Collection, FinderT Finder);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1324196"></a><h2>Description</h2>
+<p>Construct a find iterator to iterate through the specified string </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="make_split_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/make_recursive_variant.html b/doc/html/make_recursive_variant.html
new file mode 100644
index 0000000000..c86a9441ff
--- /dev/null
+++ b/doc/html/make_recursive_variant.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template make_recursive_variant</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1362374" title="Header &lt;boost/variant/recursive_variant.hpp&gt;">
+<link rel="prev" href="make_variant_over.html" title="Class template make_variant_over">
+<link rel="next" href="id1151195.html" title="Class template make_recursive_variant_over">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_variant_over.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1362374"><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="id1151195.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="make_recursive_variant"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template make_recursive_variant</span></h2>
+<p>boost::make_recursive_variant &#8212; Simplifies declaration of recursive <code class="computeroutput">variant</code> types.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2 = <span class="emphasis"><em>unspecified</em></span>, ...,
+         <span class="bold"><strong>typename</strong></span> TN = <span class="emphasis"><em>unspecified</em></span>&gt;
+<span class="bold"><strong>class</strong></span> make_recursive_variant {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="boost/variant.html" title="Class template variant">boost::variant</a>&lt; <span class="emphasis"><em>unspecified</em></span> &gt; type;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1666436"></a><h2>Description</h2>
+<p><code class="computeroutput">type</code> has behavior equivalent in every respect to
+ some <code class="computeroutput">variant&lt; U1, U2, ..., UN &gt;</code>, where each type
+ <code class="computeroutput">U<span class="emphasis"><em>i</em></span></code> is the result of the
+ corresponding type <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> undergone a
+ transformation function. The following pseudo-code specifies the
+ behavior of this transformation (call it <code class="computeroutput">substitute</code>):
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>If <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> is
+ <code class="computeroutput">boost::recursive_variant_</code> then:
+ <code class="computeroutput">variant&lt; U1, U2, ..., UN &gt;</code>;</li>
+<li>Else if <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> is of the
+ form <code class="computeroutput">X *</code> then:
+ <code class="computeroutput">substitute(X) *</code>;</li>
+<li>Else if <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> is of the
+ form <code class="computeroutput">X &amp;</code> then:
+ <code class="computeroutput">substitute(X) &amp;</code>;</li>
+<li>Else if <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> is of the
+ form <code class="computeroutput">R (*)( X1, X2, ..., XN )</code> then:
+ <code class="computeroutput">substitute(R) (*)( substitute(X1), substitute(X2), ..., substitute(XN) )</code>;</li>
+<li>Else if <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code> is of the
+ form <code class="computeroutput">F &lt; X1, X2, ..., XN &gt;</code> then:
+ <code class="computeroutput">F&lt; substitute(X1), substitute(X2), ..., substitute(XN) &gt;</code>;</li>
+<li>Else: <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code>.</li>
+</ul></div>
+<p>Note that cv-qualifiers are preserved and that the actual
+ process is generally a bit more complicated. However, the above does
+ convey the essential idea as well as describe the extent of the
+ substititions.</p>
+<p>Use of <code class="computeroutput">make_recursive_variant</code> is demonstrated in
+ <a href="variant/tutorial.html#variant.tutorial.recursive.recursive-variant" title="Recursive types with make_recursive_variant">the section called &#8220;Recursive types with <code class="computeroutput">make_recursive_variant</code>&#8221;</a>.</p>
+<p><span class="bold"><strong>Portability</strong></span>: Due to standard
+ conformance issues in several compilers,
+ <code class="computeroutput">make_recursive_variant</code> is not universally supported. On
+ these compilers the library indicates its lack of support via the
+ definition of the preprocessor symbol
+ <code class="computeroutput"><a href="id696758.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</a></code>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_variant_over.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1362374"><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="id1151195.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/make_split_iterator.html b/doc/html/make_split_iterator.html
new file mode 100644
index 0000000000..59bab0e613
--- /dev/null
+++ b/doc/html/make_split_iterator.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template make_split_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1113894" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">
+<link rel="prev" href="make_find_iterator.html" title="Function template make_find_iterator">
+<link rel="next" href="first_finder.html" title="Function first_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_find_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="first_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="make_split_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template make_split_iterator</span></h2>
+<p>boost::algorithm::make_split_iterator &#8212; split iterator construction helper </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+  <span class="type"><a href="split_iterator.html" title="Class template split_iterator">split_iterator</a>&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+  make_split_iterator(RangeT &amp; Collection, FinderT Finder);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1324261"></a><h2>Description</h2>
+<p>Construct a split iterator to iterate through the specified collection </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="make_find_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="first_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/make_variant_over.html b/doc/html/make_variant_over.html
new file mode 100644
index 0000000000..7385e6397a
--- /dev/null
+++ b/doc/html/make_variant_over.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template make_variant_over</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1258086" title="Header &lt;boost/variant/variant.hpp&gt;">
+<link rel="prev" href="id1214336.html" title="Function template operator&lt;&lt;">
+<link rel="next" href="make_recursive_variant.html" title="Class template make_recursive_variant">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1214336.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="make_recursive_variant.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="make_variant_over"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template make_variant_over</span></h2>
+<p>boost::make_variant_over &#8212; <p>Exposes a <code class="computeroutput">variant</code> whose bounded types are the
+ elements of the given type sequence.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sequence&gt;
+<span class="bold"><strong>class</strong></span> make_variant_over {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> variant&lt; <span class="emphasis"><em>unspecified</em></span> &gt; type;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1666150"></a><h2>Description</h2>
+<p><code class="computeroutput">type</code> has behavior equivalent in every respect to
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">variant</a>&lt; Sequence[0], Sequence[1], ... &gt;</code>
+ (where <code class="computeroutput">Sequence[<span class="emphasis"><em>i</em></span>]</code> denotes the
+ <span class="emphasis"><em>i</em></span>-th element of <code class="computeroutput">Sequence</code>), except
+ that no upper limit is imposed on the number of types.</p>
+<p><span class="bold"><strong>Notes</strong></span>:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<code class="computeroutput">Sequence</code> must meet the requirements of
+ <a href="../../libs/mpl/index.html" target="_top">MPL</a>'s <span class="emphasis"><em>Sequence</em></span>
+ concept.</li>
+<li>Due to standard conformance problems in several compilers,
+ <code class="computeroutput">make_variant_over</code> may not be supported on your
+ compiler. See
+ <code class="computeroutput"><a href="id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</a></code>
+ for more information.</li>
+</ul></div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1214336.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1258086"><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="make_recursive_variant.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/microsec_clock.html b/doc/html/microsec_clock.html
new file mode 100644
index 0000000000..f8f1c3f423
--- /dev/null
+++ b/doc/html/microsec_clock.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template microsec_clock</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1070509" title="Header &lt;boost/date_time/microsec_time_clock.hpp&gt;">
+<link rel="prev" href="acst_dst_trait.html" title="Struct template acst_dst_trait">
+<link rel="next" href="id974797.html" title="Type ymd_order_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acst_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1070509"><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="id974797.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="microsec_clock"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template microsec_clock</span></h2>
+<p>boost::date_time::microsec_clock &#8212; A clock providing microsecond level resolution. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+<span class="bold"><strong>class</strong></span> microsec_clock {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type          date_type;             
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;    
+  <span class="bold"><strong>typedef</strong></span> time_duration_type::rep_type  resolution_traits_type;
+
+  <span class="emphasis"><em>// <a href="microsec_clock.html#id1112505-bb">public static functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type&gt;
+    <span class="type">time_type</span> <a href="microsec_clock.html#id1112510-bb">local_time</a>(shared_ptr&lt; time_zone_type &gt;) ;
+  <span class="type">time_type</span> <a href="microsec_clock.html#id976440-bb">local_time</a>() ;
+  <span class="type">time_type</span> <a href="microsec_clock.html#id865368-bb">universal_time</a>() ;
+
+  <span class="emphasis"><em>// <a href="microsec_clock.html#id932996-bb">private static functions</a></em></span>
+  <span class="type">time_type</span> <a href="microsec_clock.html#id933001-bb">create_time</a>(TZ_FOR_CREATE) ;
+  <span class="type">time_type</span> <a href="microsec_clock.html#id1069967-bb">local_time</a>() ;
+  <span class="type">time_type</span> <a href="microsec_clock.html#id1039743-bb">universal_time</a>() ;
+  <span class="type">time_type</span> <a href="microsec_clock.html#id964788-bb">create_time</a>(FILETIME &amp;, TZ_FOR_CREATE) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1110675"></a><h2>Description</h2>
+<p>A high precision clock that measures the local time at a resolution up to microseconds and adjusts to the resolution of the time system. For example, for the a library configuration with nano second resolution, the last 3 places of the fractional seconds will always be 000 since there are 1000 nano-seconds in a micro second. </p>
+<div class="refsect2" lang="en">
+<a name="id1110686"></a><h3>
+<a name="id1112505-bb"></a><code class="computeroutput">microsec_clock</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type&gt;
+  <span class="type">time_type</span> <a name="id1112510-bb"></a>local_time(shared_ptr&lt; time_zone_type &gt; tz_ptr) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id976440-bb"></a>local_time() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id865368-bb"></a>universal_time() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1110769"></a><h3>
+<a name="id932996-bb"></a><code class="computeroutput">microsec_clock</code> private static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id933001-bb"></a>create_time(TZ_FOR_CREATE tz) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id1069967-bb"></a>local_time() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id1039743-bb"></a>universal_time() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id964788-bb"></a>create_time(FILETIME &amp; ft, TZ_FOR_CREATE tz) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acst_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1070509"><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="id974797.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/minutes.html b/doc/html/minutes.html
new file mode 100644
index 0000000000..73dfaf3728
--- /dev/null
+++ b/doc/html/minutes.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class minutes</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id975624" title="Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;">
+<link rel="prev" href="hours.html" title="Class hours">
+<link rel="next" href="seconds.html" title="Class seconds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hours.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="seconds.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="minutes"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class minutes</span></h2>
+<p>boost::posix_time::minutes &#8212; Allows expression of durations as a minute count. </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"><strong>class</strong></span> minutes : <span class="bold"><strong>public</strong></span> boost::posix_time::time_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="minutes.html#minutesconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="minutes.html#id799856-bb">minutes</a>(<span class="bold"><strong>long</strong></span>);
+
+  <span class="emphasis"><em>// <a href="minutes.html#id799851-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1176894"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1176898"></a><h3>
+<a name="minutesconstruct-copy-destruct"></a><code class="computeroutput">minutes</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id799856-bb"></a>minutes(<span class="bold"><strong>long</strong></span> m);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1176935"></a><h3>
+<a name="id799851-bb"></a><code class="computeroutput">minutes</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hours.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="seconds.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/month_formatter.html b/doc/html/month_formatter.html
new file mode 100644
index 0000000000..6b414ad196
--- /dev/null
+++ b/doc/html/month_formatter.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template month_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id891955" title="Header &lt;boost/date_time/date_formatting.hpp&gt;">
+<link rel="prev" href="id893464-bb.html" title="Class simple_format&lt;wchar_t&gt;">
+<link rel="next" href="ymd_formatter.html" title="Class template ymd_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id893464-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="ymd_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="month_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template month_formatter</span></h2>
+<p>boost::date_time::month_formatter &#8212; Formats a month as as string into an ostream. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> month_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> month_formatter {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="month_formatter.html#id961975-bb">public static functions</a></em></span>
+  <span class="type">std::basic_ostream&lt; charT &gt; &amp;</span>
+  <a href="month_formatter.html#id861050-bb">format_month</a>(<span class="bold"><strong>const</strong></span> month_type &amp;, std::basic_ostream&lt; charT &gt; &amp;) ;
+  <span class="type">std::ostream &amp;</span> <a href="month_formatter.html#id1104182-bb">format_month</a>(<span class="bold"><strong>const</strong></span> month_type &amp;, std::ostream &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1068849"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1068852"></a><h3>
+<a name="id961975-bb"></a><code class="computeroutput">month_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">std::basic_ostream&lt; charT &gt; &amp;</span>
+<a name="id861050-bb"></a>format_month(<span class="bold"><strong>const</strong></span> month_type &amp; month, std::basic_ostream&lt; charT &gt; &amp; os) ;</pre>
+<p>This function demands that month_type provide functions for converting to short and long strings if that capability is used. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::ostream &amp;</span> <a name="id1104182-bb"></a>format_month(<span class="bold"><strong>const</strong></span> month_type &amp; month, std::ostream &amp; os) ;</pre>
+<p>This function demands that month_type provide functions for converting to short and long strings if that capability is used. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id893464-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="ymd_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/month_functor.html b/doc/html/month_functor.html
new file mode 100644
index 0000000000..c99b7cb1fd
--- /dev/null
+++ b/doc/html/month_functor.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template month_functor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id797437" title="Header &lt;boost/date_time/adjust_functors.hpp&gt;">
+<link rel="prev" href="day_functor.html" title="Class template day_functor">
+<link rel="next" href="week_functor.html" title="Class template week_functor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="week_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="month_functor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template month_functor</span></h2>
+<p>boost::date_time::month_functor &#8212; Provides calculation to find next nth month given a date. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> month_functor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type cal_type;     
+  <span class="bold"><strong>typedef</strong></span> cal_type::ymd_type       ymd_type;     
+  <span class="bold"><strong>typedef</strong></span> cal_type::day_type       day_type;     
+
+  <span class="emphasis"><em>// <a href="month_functor.html#month_functorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="month_functor.html#id793432-bb">month_functor</a>(<span class="bold"><strong>int</strong></span>);
+
+  <span class="emphasis"><em>// <a href="month_functor.html#id961825-bb">public member functions</a></em></span>
+  <span class="type">duration_type</span> <a href="month_functor.html#id861542-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="month_functor.html#id829839-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1038507"></a><h2>Description</h2>
+<p>This adjustment function provides the logic for 'month-based' advancement on a ymd based calendar. The policy it uses to handle the non existant end of month days is to back up to the last day of the month. Also, if the starting date is the last day of a month, this functor will attempt to adjust to the end of the month. </p>
+<div class="refsect2" lang="en">
+<a name="id1038518"></a><h3>
+<a name="month_functorconstruct-copy-destruct"></a><code class="computeroutput">month_functor</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id793432-bb"></a>month_functor(<span class="bold"><strong>int</strong></span> f);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1038557"></a><h3>
+<a name="id961825-bb"></a><code class="computeroutput">month_functor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id861542-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id829839-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="week_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/months_duration.html b/doc/html/months_duration.html
new file mode 100644
index 0000000000..4bce3e4b69
--- /dev/null
+++ b/doc/html/months_duration.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template months_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798566" title="Header &lt;boost/date_time/date_duration_types.hpp&gt;">
+<link rel="prev" href="weeks_duration.html" title="Class template weeks_duration">
+<link rel="next" href="years_duration.html" title="Class template years_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="weeks_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="years_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="months_duration"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template months_duration</span></h2>
+<p>boost::date_time::months_duration &#8212; additional duration type that represents a logical month </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_config&gt;
+<span class="bold"><strong>class</strong></span> months_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="months_duration.html#months_durationconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="months_duration.html#id856613-bb">months_duration</a>(int_rep);
+  <a href="months_duration.html#id861559-bb">months_duration</a>(special_values);
+
+  <span class="emphasis"><em>// <a href="months_duration.html#id935923-bb">public member functions</a></em></span>
+  <span class="type">int_rep</span> <a href="months_duration.html#id899996-bb">number_of_months</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="months_duration.html#id976549-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="months_duration.html#id1070124-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="months_duration.html#id872792-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="months_duration.html#id1038890-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type</span> <a href="months_duration.html#id930399-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id837972-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) ;
+  <span class="type">months_type</span> <a href="months_duration.html#id942305-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id905343-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) ;
+  <span class="type">months_type</span> <a href="months_duration.html#id871085-bb"><span class="bold"><strong>operator</strong></span> *</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id826273-bb"><span class="bold"><strong>operator</strong></span> *=</a>(<span class="bold"><strong>const</strong></span> int_type) ;
+  <span class="type">months_type</span> <a href="months_duration.html#id868553-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id939121-bb"><span class="bold"><strong>operator</strong></span>/=</a>(<span class="bold"><strong>const</strong></span> int_type) ;
+  <span class="type">months_type</span> <a href="months_duration.html#id932651-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id975840-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) ;
+  <span class="type">months_type</span> <a href="months_duration.html#id833260-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type &amp;</span> <a href="months_duration.html#id873590-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1044231"></a><h2>Description</h2>
+<p>A logical month enables things like: "date(2002,Mar,2) + months(2) -&gt; 2002-May2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month. </p>
+<div class="refsect2" lang="en">
+<a name="id1044237"></a><h3>
+<a name="months_durationconstruct-copy-destruct"></a><code class="computeroutput">months_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id856613-bb"></a>months_duration(int_rep num);</pre></li>
+<li><pre class="literallayout"><a name="id861559-bb"></a>months_duration(special_values sv);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1044293"></a><h3>
+<a name="id935923-bb"></a><code class="computeroutput">months_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_rep</span> <a name="id899996-bb"></a>number_of_months() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id976549-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id1070124-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id872792-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1038890-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id930399-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id837972-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id942305-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id905343-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> months_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id871085-bb"></a><span class="bold"><strong>operator</strong></span> *(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id826273-bb"></a><span class="bold"><strong>operator</strong></span> *=(<span class="bold"><strong>const</strong></span> int_type rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id868553-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id939121-bb"></a><span class="bold"><strong>operator</strong></span>/=(<span class="bold"><strong>const</strong></span> int_type rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id932651-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> years_type &amp; y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id975840-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> years_type &amp; y) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id833260-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> years_type &amp; y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type &amp;</span> <a name="id873590-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> years_type &amp; y) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="weeks_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="years_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/multiple_occurrences.html b/doc/html/multiple_occurrences.html
new file mode 100644
index 0000000000..d50d160cbd
--- /dev/null
+++ b/doc/html/multiple_occurrences.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class multiple_occurrences</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="invalid_syntax.html" title="Class invalid_syntax">
+<link rel="next" href="multiple_values.html" title="Class multiple_values">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_syntax.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="multiple_values.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="multiple_occurrences"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class multiple_occurrences</span></h2>
+<p>boost::program_options::multiple_occurrences &#8212; </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"><strong>class</strong></span> multiple_occurrences : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="multiple_occurrences.html#multiple_occurrencesconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="multiple_occurrences.html#id800276-bb">multiple_occurrences</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="multiple_occurrences.html#id1039865-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1250957"></a><h2>Description</h2>
+<p>Class thrown when there are several occurrences of an option, but user called a method which cannot return them all. </p>
+<div class="refsect2" lang="en">
+<a name="id1250965"></a><h3>
+<a name="multiple_occurrencesconstruct-copy-destruct"></a><code class="computeroutput">multiple_occurrences</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id800276-bb"></a>multiple_occurrences(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251005"></a><h3>
+<a name="id1039865-bb"></a><code class="computeroutput">multiple_occurrences</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="invalid_syntax.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="multiple_values.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/multiple_values.html b/doc/html/multiple_values.html
new file mode 100644
index 0000000000..a761ea41c0
--- /dev/null
+++ b/doc/html/multiple_values.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class multiple_values</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="multiple_occurrences.html" title="Class multiple_occurrences">
+<link rel="next" href="id766036.html" title="Class too_few_positional_options_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="multiple_occurrences.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id766036.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="multiple_values"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class multiple_values</span></h2>
+<p>boost::program_options::multiple_values &#8212; </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"><strong>class</strong></span> multiple_values : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="multiple_values.html#multiple_valuesconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="multiple_values.html#id1109963-bb">multiple_values</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="multiple_values.html#id1068594-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1251098"></a><h2>Description</h2>
+<p>Class thrown when there are several option values, but user called a method which cannot return them all. </p>
+<div class="refsect2" lang="en">
+<a name="id1251105"></a><h3>
+<a name="multiple_valuesconstruct-copy-destruct"></a><code class="computeroutput">multiple_values</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1109963-bb"></a>multiple_values(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251146"></a><h3>
+<a name="id1068594-bb"></a><code class="computeroutput">multiple_values</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="multiple_occurrences.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="id766036.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/mutex.html b/doc/html/mutex.html
new file mode 100644
index 0000000000..62ea5ae615
--- /dev/null
+++ b/doc/html/mutex.html
@@ -0,0 +1,131 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id868118" title="Header &lt;boost/thread/mutex.hpp&gt;">
+<link rel="prev" href="thread_resource_error.html" title="Class thread_resource_error">
+<link rel="next" href="try_mutex.html" title="Class try_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_resource_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="try_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class mutex</span></h2>
+<p>boost::mutex &#8212; <p>The <a href="mutex.html" title="Class mutex">mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> concept.</p></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"><strong>class</strong></span> mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;
+
+  <span class="emphasis"><em>// <a href="mutex.html#mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="mutex.html#id1180143-bb">mutex</a>();
+  <a href="mutex.html#id697977-bb">~mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1558453"></a><h2>Description</h2>
+<p>The <a href="mutex.html" title="Class mutex">mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> and <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics, see <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a>,
+ <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a>, and <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>.
+ </p>
+<p>The <a href="mutex.html" title="Class mutex">mutex</a> class supplies the following typedef,
+ which <a href="threads/concepts.html#threads.concepts.lock-models" title="Lock Models">models</a>
+ the specified locking strategy:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody><tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr></tbody>
+</table></div>
+<p>The <a href="mutex.html" title="Class mutex">mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="mutex.html" title="Class mutex">mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="mutex.html" title="Class mutex">mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1558660"></a><h3>
+<a name="mutexconstruct-copy-destruct"></a><code class="computeroutput">mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1180143-bb"></a>mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="mutex.html" title="Class mutex">mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id697977-bb"></a>~mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="mutex.html" title="Class mutex">mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_resource_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="try_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/next_weekday.html b/doc/html/next_weekday.html
new file mode 100644
index 0000000000..ecc2ceb590
--- /dev/null
+++ b/doc/html/next_weekday.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template next_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="days_before_weekday.html" title="Function template days_before_weekday">
+<link rel="next" href="previous_weekday.html" title="Function template previous_weekday">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="days_before_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="previous_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="next_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template next_weekday</span></h2>
+<p>boost::date_time::next_weekday &#8212; Generates a date object representing the date of the following weekday from the given date. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+  <span class="type">date_type</span> next_weekday(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> weekday_type &amp; wd);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076314"></a><h2>Description</h2>
+<p>Generates a date object representing the date of the following weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-11. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="days_before_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="previous_weekday.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/notify.html b/doc/html/notify.html
new file mode 100644
index 0000000000..f5362c753a
--- /dev/null
+++ b/doc/html/notify.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function notify</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="id837802.html" title="Function store">
+<link rel="next" href="id833986.html" title="Macro BOOST_PROGRAM_OPTIONS_VERSION">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id837802.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id833986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="notify"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function notify</span></h2>
+<p>boost::program_options::notify &#8212; </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="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span> notify(<a href="variables_map.html" title="Class variables_map">variables_map</a> &amp; m);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1278605"></a><h2>Description</h2>
+<p>Runs all 'notify' function for options in 'm'. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id837802.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id833986.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/nth_finder.html b/doc/html/nth_finder.html
new file mode 100644
index 0000000000..6cafa0c7e8
--- /dev/null
+++ b/doc/html/nth_finder.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function nth_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="last_finder.html" title="Function last_finder">
+<link rel="next" href="head_finder.html" title="Function head_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="head_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="nth_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function nth_finder</span></h2>
+<p>boost::algorithm::nth_finder &#8212; "Nth" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> nth_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> nth_finder(<span class="bold"><strong>const</strong></span> ContainerT &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                         PredicateT Comp);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1324995"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">nth_finder</code> . The finder searches for the n-th (zero-indexed) occurrence of the string in a given input. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be find </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for. </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">nth_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="head_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/nth_kday_of_month.html b/doc/html/nth_kday_of_month.html
new file mode 100644
index 0000000000..77ce7a8af4
--- /dev/null
+++ b/doc/html/nth_kday_of_month.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template nth_kday_of_month</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="partial_date.html" title="Class template partial_date">
+<link rel="next" href="first_kday_of_month.html" title="Class template first_kday_of_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="partial_date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="nth_kday_of_month"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template nth_kday_of_month</span></h2>
+<p>boost::date_time::nth_kday_of_month &#8212; Useful generator functor for finding holidays. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> nth_kday_of_month
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::year_based_generator&lt; date_type &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type        calendar_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_of_week_type day_of_week_type;
+  <span class="bold"><strong>typedef</strong></span> calendar_type::month_type       month_type;      
+  <span class="bold"><strong>typedef</strong></span> calendar_type::year_type        year_type;       
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type        duration_type;   
+
+  <span class="emphasis"><em>// <a href="nth_kday_of_month.html#nth_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="nth_kday_of_month.html#id933193-bb">nth_kday_of_month</a>(week_num, day_of_week_type, month_type);
+
+  <span class="emphasis"><em>// <a href="nth_kday_of_month.html#id899170-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="nth_kday_of_month.html#id899175-bb">get_date</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="nth_kday_of_month.html#id962849-bb">month</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">week_num</span> <a href="nth_kday_of_month.html#id962861-bb">nth_week</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_of_week_type</span> <a href="nth_kday_of_month.html#id800396-bb">day_of_week</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="nth_kday_of_month.html#id1104045-bb">nth_week_as_str</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="nth_kday_of_month.html#id1073625-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1074613"></a><h2>Description</h2>
+<p>Based on the idea in Cal. Calc. for finding holidays that are the 'first Monday of September'. When instantiated with 'fifth' kday of month, the result will be the last kday of month which can be the fourth or fifth depending on the structure of the month.</p>
+<p>The algorithm here basically guesses for the first day of the month. Then finds the first day of the correct type. That is, if the first of the month is a Tuesday and it needs Wenesday then we simply increment by a day and then we can add the length of a week until we get to the 'nth kday'. There are probably more efficient algorithms based on using a mod 7, but this one works reasonably well for basic applications. </p>
+<div class="refsect2" lang="en">
+<a name="id1074632"></a><h3>
+<a name="nth_kday_of_monthconstruct-copy-destruct"></a><code class="computeroutput">nth_kday_of_month</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id933193-bb"></a>nth_kday_of_month(week_num week_no, day_of_week_type dow, month_type m);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1074668"></a><h3>
+<a name="id899170-bb"></a><code class="computeroutput">nth_kday_of_month</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id899175-bb"></a>get_date(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id962849-bb"></a>month() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">week_num</span> <a name="id962861-bb"></a>nth_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id800396-bb"></a>day_of_week() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id1104045-bb"></a>nth_week_as_str() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1073625-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a string formatted as "M4.3.0" ==&gt; 3rd Sunday in April. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="partial_date.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="first_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/nth_kday_rule_spec.html b/doc/html/nth_kday_rule_spec.html
new file mode 100644
index 0000000000..20dab2108e
--- /dev/null
+++ b/doc/html/nth_kday_rule_spec.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct nth_kday_rule_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id962272" title="Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;">
+<link rel="prev" href="nth_last_rule_spec.html" title="Struct nth_last_rule_spec">
+<link rel="next" href="ambiguous_result.html" title="Struct ambiguous_result">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="ambiguous_result.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="nth_kday_rule_spec"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct nth_kday_rule_spec</span></h2>
+<p>boost::local_time::nth_kday_rule_spec &#8212; </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"><strong>struct</strong></span> nth_kday_rule_spec {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date              date_type; 
+  <span class="bold"><strong>typedef</strong></span> gregorian::nth_kday_of_month start_rule;
+  <span class="bold"><strong>typedef</strong></span> gregorian::nth_kday_of_month end_rule;  
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nth_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="ambiguous_result.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/nth_last_rule_spec.html b/doc/html/nth_last_rule_spec.html
new file mode 100644
index 0000000000..16e949fbec
--- /dev/null
+++ b/doc/html/nth_last_rule_spec.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct nth_last_rule_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id962272" title="Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;">
+<link rel="prev" href="last_last_rule_spec.html" title="Struct last_last_rule_spec">
+<link rel="next" href="nth_kday_rule_spec.html" title="Struct nth_kday_rule_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="nth_kday_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="nth_last_rule_spec"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct nth_last_rule_spec</span></h2>
+<p>boost::local_time::nth_last_rule_spec &#8212; </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"><strong>struct</strong></span> nth_last_rule_spec {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date               date_type; 
+  <span class="bold"><strong>typedef</strong></span> gregorian::nth_kday_of_month  start_rule;
+  <span class="bold"><strong>typedef</strong></span> gregorian::last_kday_of_month end_rule;  
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="last_last_rule_spec.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="nth_kday_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/null_dst_rules.html b/doc/html/null_dst_rules.html
new file mode 100644
index 0000000000..f7a858c1bb
--- /dev/null
+++ b/doc/html/null_dst_rules.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template null_dst_rules</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866029" title="Header &lt;boost/date_time/dst_rules.hpp&gt;">
+<link rel="prev" href="us_dst_rules.html" title="Class template us_dst_rules">
+<link rel="next" href="dst_day_calc_rule.html" title="Class template dst_day_calc_rule">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="us_dst_rules.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="dst_day_calc_rule.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="null_dst_rules"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template null_dst_rules</span></h2>
+<p>boost::date_time::null_dst_rules &#8212; Used for local time adjustments in places that don't use dst. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_&gt;
+<span class="bold"><strong>class</strong></span> null_dst_rules {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_duration_type_ time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type_          date_type;         
+
+  <span class="emphasis"><em>// <a href="null_dst_rules.html#id896224-bb">public static functions</a></em></span>
+  <span class="type">time_is_dst_result</span>
+  <a href="null_dst_rules.html#id896229-bb">local_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_is_dst_result</span>
+  <a href="null_dst_rules.html#id929324-bb">utc_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="null_dst_rules.html#id859994-bb">is_dst_boundary_day</a>(date_type) ;
+  <span class="type">time_duration_type</span> <a href="null_dst_rules.html#id823251-bb">dst_offset</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1082325"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1082329"></a><h3>
+<a name="id896224-bb"></a><code class="computeroutput">null_dst_rules</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id896229-bb"></a>local_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; , <span class="bold"><strong>const</strong></span> time_duration_type &amp; ) ;</pre>
+<p></p>
+</li>
+<li><pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id929324-bb"></a>utc_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; , <span class="bold"><strong>const</strong></span> time_duration_type &amp; ) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id859994-bb"></a>is_dst_boundary_day(date_type d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id823251-bb"></a>dst_offset() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="us_dst_rules.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="dst_day_calc_rule.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/option_description.html b/doc/html/option_description.html
new file mode 100644
index 0000000000..7b63a37837
--- /dev/null
+++ b/doc/html/option_description.html
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class option_description</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id835103" title="Header &lt;boost/program_options/options_description.hpp&gt;">
+<link rel="prev" href="duplicate_option_error.html" title="Class duplicate_option_error">
+<link rel="next" href="options_description.html" title="Class options_description">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duplicate_option_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="options_description.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="option_description"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class option_description</span></h2>
+<p>boost::program_options::option_description &#8212; </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"><strong>class</strong></span> option_description {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="option_description.html#option_descriptionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="option_description.html#id962641-bb">option_description</a>();
+  <a href="option_description.html#id962643-bb">option_description</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> *);
+  <a href="option_description.html#id764286-bb">option_description</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> *, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *);
+  <a href="option_description.html#id756834-bb">~option_description</a>();
+
+  <span class="emphasis"><em>// <a href="option_description.html#id729258-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="option_description.html#id1109513-bb">match</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a href="option_description.html#id663838-bb">key</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a href="option_description.html#id1006651-bb">long_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a href="option_description.html#id791699-bb">description</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">shared_ptr&lt; <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> &gt;</span> <a href="option_description.html#id934552-bb">semantic</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="option_description.html#id1081789-bb">format_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::string</span> <a href="option_description.html#id864053-bb">format_parameter</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="option_description.html#id756836-bb">private member functions</a></em></span>
+  <span class="type"><a href="option_description.html" title="Class option_description">option_description</a> &amp;</span> <a href="option_description.html#id757426-bb">set_name</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1252751"></a><h2>Description</h2>
+<p>Describes one possible command line/config file option. There are two kinds of properties of an option. First describe it syntactically and are used only to validate input. Second affect interpretation of the option, for example default value for it or function that should be called when the value is finally known. Routines which perform parsing never use second kind of properties -- they are side effect free. </p>
+<p>options_description </p>
+<div class="refsect2" lang="en">
+<a name="id1252766"></a><h3>
+<a name="option_descriptionconstruct-copy-destruct"></a><code class="computeroutput">option_description</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id962641-bb"></a>option_description();</pre></li>
+<li>
+<pre class="literallayout"><a name="id962643-bb"></a>option_description(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> * s);</pre>
+<p>Initializes the object with the passed data.</p>
+<p>Note: it would be nice to make the second parameter auto_ptr, to explicitly pass ownership. Unfortunately, it's often needed to create objects of types derived from 'value_semantic': options_description d; d.add_options()("a", parameter&lt;int&gt;("n")-&gt;default_value(1)); Here, the static type returned by 'parameter' should be derived from value_semantic.</p>
+<p>Alas, derived-&gt;base conversion for auto_ptr does not really work, see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2000/n1232.pdf http://std.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html#84</p>
+<p>So, we have to use plain old pointers. Besides, users are not expected to use the constructor directly.</p>
+<p>The 'name' parameter is interpreted by the following rules:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>if there's no "," character in 'name', it specifies long name</p></li>
+<li><p>otherwise, the part before "," specifies long name and the part after -- long name. </p></li>
+</ul></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id764286-bb"></a>option_description(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name, <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> * s,
+                   <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * description);</pre>
+<p>Initializes the class with the passed data. </p>
+</li>
+<li><pre class="literallayout"><a name="id756834-bb"></a>~option_description();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1252945"></a><h3>
+<a name="id729258-bb"></a><code class="computeroutput">option_description</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1109513-bb"></a>match(<span class="bold"><strong>const</strong></span> std::string &amp; option, <span class="bold"><strong>bool</strong></span> approx) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Given 'option', specified in the input source, return 'true' is 'option' specifies *this. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a name="id663838-bb"></a>key(<span class="bold"><strong>const</strong></span> std::string &amp; option) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Return the key that should identify the option, in particular in the variables_map class. The 'option' parameter is the option spelling from the input source. If option name contains '*', returns 'option'. If long name was specified, it's the long name, otherwise it's a short name with prepended '-'. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a name="id1006651-bb"></a>long_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::string &amp;</span> <a name="id791699-bb"></a>description() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">shared_ptr&lt; <span class="bold"><strong>const</strong></span> <a href="value_semantic.html" title="Class value_semantic">value_semantic</a> &gt;</span> <a name="id934552-bb"></a>semantic() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id1081789-bb"></a>format_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id864053-bb"></a>format_parameter() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Return the parameter name and properties, formatted suitably for usage message. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1253185"></a><h3>
+<a name="id756836-bb"></a><code class="computeroutput">option_description</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><a href="option_description.html" title="Class option_description">option_description</a> &amp;</span> <a name="id757426-bb"></a>set_name(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> * name) ;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duplicate_option_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="options_description.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/options_description.html b/doc/html/options_description.html
new file mode 100644
index 0000000000..4398df2246
--- /dev/null
+++ b/doc/html/options_description.html
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class options_description</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id835103" title="Header &lt;boost/program_options/options_description.hpp&gt;">
+<link rel="prev" href="option_description.html" title="Class option_description">
+<link rel="next" href="id1104430.html" title="Class options_description_easy_init">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="option_description.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="id1104430.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="options_description"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class options_description</span></h2>
+<p>boost::program_options::options_description &#8212; </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"><strong>class</strong></span> options_description {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="options_description.html#options_descriptionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="options_description.html#id1073429-bb">options_description</a>(<span class="bold"><strong>unsigned</strong></span> = m_default_line_length);
+  <a href="options_description.html#id1043482-bb">options_description</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>unsigned</strong></span> = m_default_line_length);
+
+  <span class="emphasis"><em>// <a href="options_description.html#id723827-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="options_description.html#id1009013-bb">add</a>(shared_ptr&lt; <a href="option_description.html" title="Class option_description">option_description</a> &gt;) ;
+  <span class="type"><a href="options_description.html" title="Class options_description">options_description</a> &amp;</span> <a href="options_description.html#id728029-bb">add</a>(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp;) ;
+  <span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a></span> <a href="options_description.html#id796166-bb">add_options</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="option_description.html" title="Class option_description">option_description</a> &amp;</span> <a href="options_description.html#id1139393-bb">find</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="option_description.html" title="Class option_description">option_description</a> *</span> <a href="options_description.html#id1009104-bb">find_nothrow</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> std::vector&lt; shared_ptr&lt; <a href="option_description.html" title="Class option_description">option_description</a> &gt; &gt; &amp;</span> <a href="options_description.html#id1078938-bb">options</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="options_description.html#id731268-bb">print</a>(std::ostream &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const unsigned m_default_line_length;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1253537"></a><h2>Description</h2>
+<p>A set of option descriptions. This provides convenient interface for adding new option (the add_options) method, and facilities to search for options by name.</p>
+<p>See here for option adding interface discussion. </p>
+<p>option_description </p>
+<div class="refsect2" lang="en">
+<a name="id1253552"></a><h3>
+<a name="options_descriptionconstruct-copy-destruct"></a><code class="computeroutput">options_description</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1073429-bb"></a>options_description(<span class="bold"><strong>unsigned</strong></span> line_length = m_default_line_length);</pre>
+<p>Creates the instance. </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1043482-bb"></a>options_description(<span class="bold"><strong>const</strong></span> std::string &amp; caption,
+                    <span class="bold"><strong>unsigned</strong></span> line_length = m_default_line_length);</pre>
+<p>Creates the instance. The 'caption' parameter gives the name of this 'options_description' instance. Primarily useful for output. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1253626"></a><h3>
+<a name="id723827-bb"></a><code class="computeroutput">options_description</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1009013-bb"></a>add(shared_ptr&lt; <a href="option_description.html" title="Class option_description">option_description</a> &gt; desc) ;</pre>
+<p>Adds new variable description. Throws duplicate_variable_error if either short or long name matches that of already present one. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="options_description.html" title="Class options_description">options_description</a> &amp;</span> <a name="id728029-bb"></a>add(<span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; desc) ;</pre>
+<p>Adds a group of option description. This has the same effect as adding all option_descriptions in 'desc' individually, except that output operator will show a separate group. Returns *this. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a></span> <a name="id796166-bb"></a>add_options() ;</pre>
+<p>Returns an object of implementation-defined type suitable for adding options to options_description. The returned object will have overloaded operator() with parameter type matching 'option_description' constructors. Calling the operator will create new option_description instance and add it. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="option_description.html" title="Class option_description">option_description</a> &amp;</span> <a name="id1139393-bb"></a>find(<span class="bold"><strong>const</strong></span> std::string &amp; name, <span class="bold"><strong>bool</strong></span> approx) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="option_description.html" title="Class option_description">option_description</a> *</span>
+<a name="id1009104-bb"></a>find_nothrow(<span class="bold"><strong>const</strong></span> std::string &amp; name, <span class="bold"><strong>bool</strong></span> approx) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> std::vector&lt; shared_ptr&lt; <a href="option_description.html" title="Class option_description">option_description</a> &gt; &gt; &amp;</span> <a name="id1078938-bb"></a>options() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id731268-bb"></a>print(std::ostream &amp; os) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Output 'desc' to the specified stream, calling 'f' to output each option_description element. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="option_description.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id835103"><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="id1104430.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ostream_date_formatter.html b/doc/html/ostream_date_formatter.html
new file mode 100644
index 0000000000..27b141a64d
--- /dev/null
+++ b/doc/html/ostream_date_formatter.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_date_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id968176" title="Header &lt;boost/date_time/date_formatting_locales.hpp&gt;">
+<link rel="prev" href="ostream_ymd_formatter.html" title="Class template ostream_ymd_formatter">
+<link rel="next" href="date_generator_formatter.html" title="Class template date_generator_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_ymd_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="date_generator_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ostream_date_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_date_formatter</span></h2>
+<p>boost::date_time::ostream_date_formatter &#8212; Convert a date to string using format policies. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_date_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt; ostream_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::ymd_type         ymd_type;    
+
+  <span class="emphasis"><em>// <a href="ostream_date_formatter.html#id975828-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_date_formatter.html#id975833-bb">date_put</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, ostream_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_date_formatter.html#id978038-bb">date_put</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, ostream_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1070207"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1070210"></a><h3>
+<a name="id975828-bb"></a><code class="computeroutput">ostream_date_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id975833-bb"></a>date_put(<span class="bold"><strong>const</strong></span> date_type &amp; d, ostream_type &amp; os, <span class="bold"><strong>const</strong></span> facet_type &amp; f) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id978038-bb"></a>date_put(<span class="bold"><strong>const</strong></span> date_type &amp; d, ostream_type &amp; os) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_ymd_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="date_generator_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ostream_month_formatter.html b/doc/html/ostream_month_formatter.html
new file mode 100644
index 0000000000..891001c567
--- /dev/null
+++ b/doc/html/ostream_month_formatter.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_month_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id968176" title="Header &lt;boost/date_time/date_formatting_locales.hpp&gt;">
+<link rel="prev" href="date_formatter.html" title="Class template date_formatter">
+<link rel="next" href="ostream_weekday_formatter.html" title="Class template ostream_weekday_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_weekday_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ostream_month_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_month_formatter</span></h2>
+<p>boost::date_time::ostream_month_formatter &#8212; Formats a month as as string into an ostream. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_month_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> facet_type::month_type      month_type;  
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt; ostream_type;
+
+  <span class="emphasis"><em>// <a href="ostream_month_formatter.html#id1078247-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_month_formatter.html#id1078252-bb">format_month</a>(<span class="bold"><strong>const</strong></span> month_type &amp;, ostream_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1069616"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1069619"></a><h3>
+<a name="id1078247-bb"></a><code class="computeroutput">ostream_month_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1078252-bb"></a>format_month(<span class="bold"><strong>const</strong></span> month_type &amp; month, ostream_type &amp; os,
+                  <span class="bold"><strong>const</strong></span> facet_type &amp; f) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_weekday_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ostream_time_formatter.html b/doc/html/ostream_time_formatter.html
new file mode 100644
index 0000000000..4649fb4833
--- /dev/null
+++ b/doc/html/ostream_time_formatter.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_time_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id856862" title="Header &lt;boost/date_time/time_formatting_streams.hpp&gt;">
+<link rel="prev" href="id838605.html" title="Class template ostream_time_duration_formatter">
+<link rel="next" href="id1003606.html" title="Class template ostream_time_period_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id838605.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="id1003606.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ostream_time_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_time_formatter</span></h2>
+<p>boost::date_time::ostream_time_formatter &#8212; Put a time type into a stream using appropriate facets. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_time_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt;                                  ostream_type;      
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type                                         date_type;         
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type                                time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="id838605.html" title="Class template ostream_time_duration_formatter">ostream_time_duration_formatter</a>&lt; time_duration_type, charT &gt; duration_formatter;
+
+  <span class="emphasis"><em>// <a href="ostream_time_formatter.html#id1003560-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_time_formatter.html#id1003565-bb">time_put</a>(<span class="bold"><strong>const</strong></span> time_type &amp;, ostream_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1140568"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1140572"></a><h3>
+<a name="id1003560-bb"></a><code class="computeroutput">ostream_time_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1003565-bb"></a>time_put(<span class="bold"><strong>const</strong></span> time_type &amp; t, ostream_type &amp; os) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id838605.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id856862"><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="id1003606.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ostream_weekday_formatter.html b/doc/html/ostream_weekday_formatter.html
new file mode 100644
index 0000000000..3534741cdc
--- /dev/null
+++ b/doc/html/ostream_weekday_formatter.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_weekday_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id968176" title="Header &lt;boost/date_time/date_formatting_locales.hpp&gt;">
+<link rel="prev" href="ostream_month_formatter.html" title="Class template ostream_month_formatter">
+<link rel="next" href="ostream_ymd_formatter.html" title="Class template ostream_ymd_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_month_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_ymd_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ostream_weekday_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_weekday_formatter</span></h2>
+<p>boost::date_time::ostream_weekday_formatter &#8212; Formats a weekday. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> weekday_type, <span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_weekday_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> facet_type::month_type      month_type;  
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt; ostream_type;
+
+  <span class="emphasis"><em>// <a href="ostream_weekday_formatter.html#id1107105-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_weekday_formatter.html#id1107110-bb">format_weekday</a>(<span class="bold"><strong>const</strong></span> weekday_type &amp;, ostream_type &amp;,
+                      <span class="bold"><strong>const</strong></span> facet_type &amp;, <span class="bold"><strong>bool</strong></span>) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1069800"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1069803"></a><h3>
+<a name="id1107105-bb"></a><code class="computeroutput">ostream_weekday_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1107110-bb"></a>format_weekday(<span class="bold"><strong>const</strong></span> weekday_type &amp; wd, ostream_type &amp; os,
+                    <span class="bold"><strong>const</strong></span> facet_type &amp; f, <span class="bold"><strong>bool</strong></span> as_long_string) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_month_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_ymd_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ostream_ymd_formatter.html b/doc/html/ostream_ymd_formatter.html
new file mode 100644
index 0000000000..ec191c8b19
--- /dev/null
+++ b/doc/html/ostream_ymd_formatter.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ostream_ymd_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id968176" title="Header &lt;boost/date_time/date_formatting_locales.hpp&gt;">
+<link rel="prev" href="ostream_weekday_formatter.html" title="Class template ostream_weekday_formatter">
+<link rel="next" href="ostream_date_formatter.html" title="Class template ostream_date_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_weekday_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_date_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ostream_ymd_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ostream_ymd_formatter</span></h2>
+<p>boost::date_time::ostream_ymd_formatter &#8212; Convert ymd to a standard string formatting policies. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type, <span class="bold"><strong>typename</strong></span> facet_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ostream_ymd_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> ymd_type::month_type                         month_type;          
+  <span class="bold"><strong>typedef</strong></span> <a href="ostream_month_formatter.html" title="Class template ostream_month_formatter">ostream_month_formatter</a>&lt; facet_type, charT &gt; month_formatter_type;
+  <span class="bold"><strong>typedef</strong></span> std::basic_ostream&lt; charT &gt;                  ostream_type;        
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                   foo_type;            
+
+  <span class="emphasis"><em>// <a href="ostream_ymd_formatter.html#id976307-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="ostream_ymd_formatter.html#id1102473-bb">ymd_put</a>(ymd_type, ostream_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1070005"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1070008"></a><h3>
+<a name="id976307-bb"></a><code class="computeroutput">ostream_ymd_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1102473-bb"></a>ymd_put(ymd_type ymd, ostream_type &amp; os, <span class="bold"><strong>const</strong></span> facet_type &amp; f) ;</pre>
+<p>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </p>
+</li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ostream_weekday_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id968176"><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="ostream_date_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/parse_command_line.html b/doc/html/parse_command_line.html
new file mode 100644
index 0000000000..8bbc6bf63c
--- /dev/null
+++ b/doc/html/parse_command_line.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template parse_command_line</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="id1002952-bb.html" title="Class basic_parsed_options&lt;wchar_t&gt;">
+<link rel="next" href="parse_config_file.html" title="Function template parse_config_file">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1002952-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="parse_config_file.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="parse_command_line"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template parse_command_line</span></h2>
+<p>boost::program_options::parse_command_line &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type"><a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span>
+  parse_command_line(<span class="bold"><strong>int</strong></span> argc, charT * argv, <span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; ,
+                     <span class="bold"><strong>int</strong></span> style = 0,
+                     function1&lt; std::pair&lt; std::string, std::string &gt;, <span class="bold"><strong>const</strong></span> std::string &amp; &gt; ext = ext_parser());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255712"></a><h2>Description</h2>
+<p>Creates instance of 'command_line_parser', passes parameters to it, and returns the result of calling the 'run' method. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1002952-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="parse_config_file.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/parse_config_file.html b/doc/html/parse_config_file.html
new file mode 100644
index 0000000000..b5f4bce47e
--- /dev/null
+++ b/doc/html/parse_config_file.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template parse_config_file</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id730253" title="Header &lt;boost/program_options/parsers.hpp&gt;">
+<link rel="prev" href="parse_command_line.html" title="Function template parse_command_line">
+<link rel="next" href="id1010247.html" title="Function parse_environment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_command_line.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1010247.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="parse_config_file"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template parse_config_file</span></h2>
+<p>boost::program_options::parse_config_file &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">BOOST_PROGRAM_OPTIONS_DECL <a href="basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span>
+  parse_config_file(std::basic_istream&lt; charT &gt; &amp; ,
+                    <span class="bold"><strong>const</strong></span> <a href="options_description.html" title="Class options_description">options_description</a> &amp; );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1255791"></a><h2>Description</h2>
+<p>Parse a config file. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_command_line.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id730253"><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="id1010247.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/parse_match_result.html b/doc/html/parse_match_result.html
new file mode 100644
index 0000000000..20b5b3a599
--- /dev/null
+++ b/doc/html/parse_match_result.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template parse_match_result</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id977101" title="Header &lt;boost/date_time/string_parse_tree.hpp&gt;">
+<link rel="prev" href="convert_string_type.html" title="Function template convert_string_type">
+<link rel="next" href="string_parse_tree.html" title="Struct template string_parse_tree">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="convert_string_type.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977101"><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="string_parse_tree.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="parse_match_result"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template parse_match_result</span></h2>
+<p>boost::date_time::parse_match_result &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>struct</strong></span> parse_match_result {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt; string_type;
+
+  <span class="emphasis"><em>// <a href="parse_match_result.html#parse_match_resultconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="parse_match_result.html#id1042322-bb">parse_match_result</a>();
+
+  <span class="emphasis"><em>// <a href="parse_match_result.html#id857911-bb">public member functions</a></em></span>
+  <span class="type">string_type</span> <a href="parse_match_result.html#id857916-bb">remaining</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">charT</span> <a href="parse_match_result.html#id978445-bb">last_char</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="parse_match_result.html#id943322-bb">has_remaining</a>() <span class="bold"><strong>const</strong></span>;
+
+  string_type cache;
+  unsigned short match_depth;
+  short current_match;
+  <span class="bold"><strong>static</strong></span> const short PARSE_ERROR;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1115661"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1115664"></a><h3>
+<a name="parse_match_resultconstruct-copy-destruct"></a><code class="computeroutput">parse_match_result</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1042322-bb"></a>parse_match_result();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1115698"></a><h3>
+<a name="id857911-bb"></a><code class="computeroutput">parse_match_result</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id857916-bb"></a>remaining() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id978445-bb"></a>last_char() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id943322-bb"></a>has_remaining() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Should be used in conjunction with last_char() to get the remaining character. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="convert_string_type.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977101"><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="string_parse_tree.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/partial_date.html b/doc/html/partial_date.html
new file mode 100644
index 0000000000..d1f6ff4680
--- /dev/null
+++ b/doc/html/partial_date.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template partial_date</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="year_based_generator.html" title="Class template year_based_generator">
+<link rel="next" href="nth_kday_of_month.html" title="Class template nth_kday_of_month">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_based_generator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="nth_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="partial_date"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template partial_date</span></h2>
+<p>boost::date_time::partial_date &#8212; Generates a date by applying the year to the given month and day. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> partial_date
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::year_based_generator&lt; date_type &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type    calendar_type;
+  <span class="bold"><strong>typedef</strong></span> calendar_type::day_type     day_type;     
+  <span class="bold"><strong>typedef</strong></span> calendar_type::month_type   month_type;   
+  <span class="bold"><strong>typedef</strong></span> calendar_type::year_type    year_type;    
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type    duration_type;
+  <span class="bold"><strong>typedef</strong></span> duration_type::duration_rep duration_rep; 
+
+  <span class="emphasis"><em>// <a href="partial_date.html#partial_dateconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="partial_date.html#id1079437-bb">partial_date</a>(day_type, month_type);
+  <a href="partial_date.html#id695033-bb">partial_date</a>(duration_rep);
+
+  <span class="emphasis"><em>// <a href="partial_date.html#id834236-bb">public member functions</a></em></span>
+  <span class="type">date_type</span> <a href="partial_date.html#id724088-bb">get_date</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">date_type</span> <a href="partial_date.html#id1038140-bb"><span class="bold"><strong>operator</strong></span>()</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="partial_date.html#id974281-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="partial_date.html#id905903-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">month_type</span> <a href="partial_date.html#id904448-bb">month</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">day_type</span> <a href="partial_date.html#id1035272-bb">day</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="partial_date.html#id1111433-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1074056"></a><h2>Description</h2>
+<p>Example usage: </p>
+<pre class="programlisting"> partial_date pd(1, Jan);
+ partial_date pd2(70);
+ date d = pd.get_date(2002); //2002-Jan-01
+ date d2 = pd2.get_date(2002); //2002-Mar-10
+</pre>
+<div class="refsect2" lang="en">
+<a name="id1074069"></a><h3>
+<a name="partial_dateconstruct-copy-destruct"></a><code class="computeroutput">partial_date</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1079437-bb"></a>partial_date(day_type d, month_type m);</pre></li>
+<li>
+<pre class="literallayout"><a name="id695033-bb"></a>partial_date(duration_rep days);</pre>
+<p>Allowable values range from 1 to 366. 1=Jan1, 366=Dec31. If argument exceeds range, partial_date will be created with closest in-range value. 60 will always be Feb29, if get_date() is called with a non-leap year an exception will be thrown </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1074124"></a><h3>
+<a name="id834236-bb"></a><code class="computeroutput">partial_date</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">date_type</span> <a name="id724088-bb"></a>get_date(year_type y) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Will throw an 'invalid_argument' exception if a partial_date object, instantiated with Feb-29, has get_date called with a non-leap year. Example: </p>
+<pre class="programlisting"> partial_date pd(29, Feb);
+ pd.get_date(2003); // throws invalid_argument exception
+ pg.get_date(2000); // returns 2000-2-29
+</pre>
+</li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id1038140-bb"></a><span class="bold"><strong>operator</strong></span>()(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id974281-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id905903-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="partial_date.html" title="Class template partial_date">partial_date</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id904448-bb"></a>month() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">day_type</span> <a name="id1035272-bb"></a>day() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1111433-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns string formatted with up to 3 digits: Jan-01 == "0" Feb-29 == "58" Dec-31 == "365" </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="year_based_generator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="nth_kday_of_month.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/partial_date_rule_spec.html b/doc/html/partial_date_rule_spec.html
new file mode 100644
index 0000000000..29b2fe7f14
--- /dev/null
+++ b/doc/html/partial_date_rule_spec.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct partial_date_rule_spec</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id962272" title="Header &lt;boost/date_time/local_time/dst_transition_day_rules.hpp&gt;">
+<link rel="prev" href="id1112796.html" title="Function operator-=">
+<link rel="next" href="first_last_rule_spec.html" title="Struct first_last_rule_spec">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1112796.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="first_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="partial_date_rule_spec"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct partial_date_rule_spec</span></h2>
+<p>boost::local_time::partial_date_rule_spec &#8212; </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"><strong>struct</strong></span> partial_date_rule_spec {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date         date_type; 
+  <span class="bold"><strong>typedef</strong></span> gregorian::partial_date start_rule;
+  <span class="bold"><strong>typedef</strong></span> gregorian::partial_date end_rule;  
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1112796.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id962272"><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="first_last_rule_spec.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/period.html b/doc/html/period.html
new file mode 100644
index 0000000000..4c9193197f
--- /dev/null
+++ b/doc/html/period.html
@@ -0,0 +1,126 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template period</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id906808" title="Header &lt;boost/date_time/period.hpp&gt;">
+<link rel="prev" href="id974797.html" title="Type ymd_order_spec">
+<link rel="next" href="period_formatter.html" title="Class template period_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974797.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906808"><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="period_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="period"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template period</span></h2>
+<p>boost::date_time::period &#8212; Provides generalized period type useful in date-time systems. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> point_rep, <span class="bold"><strong>typename</strong></span> duration_rep&gt;
+<span class="bold"><strong>class</strong></span> period {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> point_rep    point_type;   
+  <span class="bold"><strong>typedef</strong></span> duration_rep duration_type;
+
+  <span class="emphasis"><em>// <a href="period.html#periodconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="period.html#id1071253-bb">period</a>(point_rep, point_rep);
+  <a href="period.html#id1073361-bb">period</a>(point_rep, duration_rep);
+
+  <span class="emphasis"><em>// <a href="period.html#id1071874-bb">public member functions</a></em></span>
+  <span class="type">point_rep</span> <a href="period.html#id1071879-bb">begin</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">point_rep</span> <a href="period.html#id1106030-bb">end</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">point_rep</span> <a href="period.html#id1047324-bb">last</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_rep</span> <a href="period.html#id893633-bb">length</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id976416-bb">is_null</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id907080-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id1039192-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period.html#id905243-bb">shift</a>(<span class="bold"><strong>const</strong></span> duration_rep &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id803289-bb">contains</a>(<span class="bold"><strong>const</strong></span> point_rep &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id838330-bb">contains</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id899835-bb">intersects</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id1039721-bb">is_adjacent</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id1038085-bb">is_before</a>(<span class="bold"><strong>const</strong></span> point_rep &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="period.html#id970330-bb">is_after</a>(<span class="bold"><strong>const</strong></span> point_rep &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="period.html" title="Class template period">period</a></span> <a href="period.html#id931144-bb">intersection</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="period.html" title="Class template period">period</a></span> <a href="period.html#id970993-bb">merge</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><a href="period.html" title="Class template period">period</a></span> <a href="period.html#id1034695-bb">span</a>(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1111595"></a><h2>Description</h2>
+<p>This template uses a class to represent a time point within the period and another class to represent a duration. As a result, this class is not appropriate for use when the number and duration representation are the same (eg: in the regular number domain).</p>
+<p>A period can be specified by providing either the begining point and a duration or the begining point and the end point( end is NOT part of the period but 1 unit past it. A period will be "invalid" if either end_point &lt;= begin_point or the given duration is &lt;= 0. Any valid period will return false for is_null().</p>
+<p>Zero length periods are also considered invalid. Zero length periods are periods where the begining and end points are the same, or, the given duration is zero. For a zero length period, the last point will be one unit less than the begining point.</p>
+<p>In the case that the begin and last are the same, the period has a length of one unit.</p>
+<p>The best way to handle periods is usually to provide a begining point and a duration. So, day1 + 7 days is a week period which includes all of the first day and 6 more days (eg: Sun to Sat). </p>
+<div class="refsect2" lang="en">
+<a name="id1111634"></a><h3>
+<a name="periodconstruct-copy-destruct"></a><code class="computeroutput">period</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1071253-bb"></a>period(point_rep first_point, point_rep end_point);</pre>
+<p>If end &lt;= begin then the period will be invalid </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1073361-bb"></a>period(point_rep first_point, duration_rep len);</pre>
+<p>If len is &lt;= 0 then the period will be invalid </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1111688"></a><h3>
+<a name="id1071874-bb"></a><code class="computeroutput">period</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">point_rep</span> <a name="id1071879-bb"></a>begin() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">point_rep</span> <a name="id1106030-bb"></a>end() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">point_rep</span> <a name="id1047324-bb"></a>last() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_rep</span> <a name="id893633-bb"></a>length() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id976416-bb"></a>is_null() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id907080-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1039192-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id905243-bb"></a>shift(<span class="bold"><strong>const</strong></span> duration_rep &amp; d) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id803289-bb"></a>contains(<span class="bold"><strong>const</strong></span> point_rep &amp; point) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id838330-bb"></a>contains(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id899835-bb"></a>intersects(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1039721-bb"></a>is_adjacent(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1038085-bb"></a>is_before(<span class="bold"><strong>const</strong></span> point_rep &amp; point) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id970330-bb"></a>is_after(<span class="bold"><strong>const</strong></span> point_rep &amp; point) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="period.html" title="Class template period">period</a></span> <a name="id931144-bb"></a>intersection(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="period.html" title="Class template period">period</a></span> <a name="id970993-bb"></a>merge(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><a href="period.html" title="Class template period">period</a></span> <a name="id1034695-bb"></a>span(<span class="bold"><strong>const</strong></span> <a href="period.html" title="Class template period">period</a> &amp; other) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Combines two periods and any gap between them such that start = min(p1.start, p2.start) end = max(p1.end , p2.end) </p>
+<pre class="programlisting"> [---p1---)
+ [---p2---)
+ result:
+ [-----------p3----------)
+ *
+</pre>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id974797.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id906808"><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="period_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/period_formatter.html b/doc/html/period_formatter.html
new file mode 100644
index 0000000000..a205804a18
--- /dev/null
+++ b/doc/html/period_formatter.html
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template period_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id836121" title="Header &lt;boost/date_time/period_formatter.hpp&gt;">
+<link rel="prev" href="period.html" title="Class template period">
+<link rel="next" href="period_parser.html" title="Class template period_parser">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id836121"><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="period_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="period_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template period_formatter</span></h2>
+<p>boost::date_time::period_formatter &#8212; Not a facet, but a class used to specify and control period formats. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> period_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt;                     string_type;    
+  <span class="bold"><strong>typedef</strong></span> CharT                                          char_type;      
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; char_type &gt;::const_iterator const_itr_type; 
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; CharT &gt; &gt;      collection_type;
+
+  <span class="emphasis"><em>// <a href="period_formatter.html#period_formatterconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="period_formatter.html#id867573-bb">period_formatter</a>(range_display_options = AS_CLOSED_RANGE,
+                   <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_separator,
+                   <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_start_delimeter,
+                   <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_open_range_end_delimeter,
+                   <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_closed_range_end_delimeter);
+
+  <span class="emphasis"><em>// <a href="period_formatter.html#id858487-bb">public member functions</a></em></span>
+  <span class="type">OutItrT</span> <a href="period_formatter.html#id858492-bb">put_period_separator</a>(OutItrT &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="period_formatter.html#id868076-bb">put_period_start_delimeter</a>(OutItrT &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="period_formatter.html#id1109048-bb">put_period_end_delimeter</a>(OutItrT &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">range_display_options</span> <a href="period_formatter.html#id1002899-bb">range_option</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period_formatter.html#id1046434-bb">range_option</a>(range_display_options) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period_formatter.html#id927171-bb">delimiter_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                         <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;) ;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> period_type, <span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">OutItrT</span> <a href="period_formatter.html#id976490-bb">put_period</a>(OutItrT, std::ios_base &amp;, char_type,
+                       <span class="bold"><strong>const</strong></span> period_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type default_period_separator;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_start_delimeter;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_open_range_end_delimeter;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_closed_range_end_delimeter;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1112729"></a><h2>Description</h2>
+<p>Provides settings for the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>period_separator -- default '/'</p></li>
+<li><p>period_open_start_delimeter -- default '['</p></li>
+<li><p>period_open_range_end_delimeter -- default ')'</p></li>
+<li><p>period_closed_range_end_delimeter -- default ']'</p></li>
+<li><p>display_as_open_range, display_as_closed_range -- default closed_range</p></li>
+</ul></div>
+<p>Thus the default formatting for a period is as follows: </p>
+<pre class="programlisting"> [period.start()/period.last()]
+ *
+</pre>
+<p>So for a typical date_period this would be </p>
+<pre class="programlisting"> [2004-Jan-04/2004-Feb-01]
+ *
+</pre>
+<p>where the date formatting is controlled by the date facet </p>
+<div class="refsect2" lang="en">
+<a name="id1112774"></a><h3>
+<a name="period_formatterconstruct-copy-destruct"></a><code class="computeroutput">period_formatter</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id867573-bb"></a>period_formatter(range_display_options range_option = AS_CLOSED_RANGE,
+                 <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_separator = default_period_separator,
+                 <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_start_delimeter = default_period_start_delimeter,
+                 <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_open_range_end_delimeter = default_period_open_range_end_delimeter,
+                 <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_closed_range_end_delimeter = default_period_closed_range_end_delimeter);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1112866"></a><h3>
+<a name="id858487-bb"></a><code class="computeroutput">period_formatter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id858492-bb"></a>put_period_separator(OutItrT &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id868076-bb"></a>put_period_start_delimeter(OutItrT &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1109048-bb"></a>put_period_end_delimeter(OutItrT &amp; oitr) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">range_display_options</span> <a name="id1002899-bb"></a>range_option() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1046434-bb"></a>range_option(range_display_options option) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id927171-bb"></a>delimiter_strings(<span class="bold"><strong>const</strong></span> string_type &amp; separator,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; start_delim,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; open_end_delim,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; closed_end_delim) ;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> period_type, <span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">OutItrT</span> <a name="id976490-bb"></a>put_period(OutItrT next, std::ios_base &amp; a_ios, char_type a_fill,
+                     <span class="bold"><strong>const</strong></span> period_type &amp; p, <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre>
+<p>This generic code will output any period using a facet to to output the 'elements'. For example, in the case of a date_period the elements will be instances of a date which will be formatted according the to setup in the passed facet parameter.</p>
+<p>The steps for formatting a period are always the same:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>put the start delimiter</p></li>
+<li><p>put start element</p></li>
+<li><p>put the separator</p></li>
+<li><p>put either last or end element depending on range settings</p></li>
+<li><p>put end delimeter depending on range settings</p></li>
+</ul></div>
+<p>Thus for a typical date period the result might look like this: </p>
+<pre class="programlisting"> [March 01, 2004/June 07, 2004] &lt;-- closed range
+ [March 01, 2004/June 08, 2004) &lt;-- open range
+
+ *
+</pre>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id836121"><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="period_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/period_parser.html b/doc/html/period_parser.html
new file mode 100644
index 0000000000..616055b5cd
--- /dev/null
+++ b/doc/html/period_parser.html
@@ -0,0 +1,150 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template period_parser</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id802180" title="Header &lt;boost/date_time/period_parser.hpp&gt;">
+<link rel="prev" href="period_formatter.html" title="Class template period_formatter">
+<link rel="next" href="special_values_formatter.html" title="Class template special_values_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id802180"><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="special_values_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="period_parser"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template period_parser</span></h2>
+<p>boost::date_time::period_parser &#8212; Not a facet, but a class used to specify and control period parsing. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> CharT&gt;
+<span class="bold"><strong>class</strong></span> period_parser {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt;                string_type;    
+  <span class="bold"><strong>typedef</strong></span> CharT                                     char_type;      
+  <span class="bold"><strong>typedef</strong></span> std::istreambuf_iterator&lt; CharT &gt;         stream_itr_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>&lt; CharT &gt;                parse_tree_type;
+  <span class="bold"><strong>typedef</strong></span> parse_tree_type::parse_match_result_type  match_results;  
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; CharT &gt; &gt; collection_type;
+
+  <span class="emphasis"><em>// <a href="period_parser.html#period_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="period_parser.html#id903628-bb">period_parser</a>(period_range_option = AS_CLOSED_RANGE,
+                <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_separator,
+                <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_start_delimeter,
+                <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_open_range_end_delimeter,
+                <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> = default_period_closed_range_end_delimeter);
+  <a href="period_parser.html#id1032768-bb">period_parser</a>(<span class="bold"><strong>const</strong></span> <a href="period_parser.html" title="Class template period_parser">period_parser</a>&lt; date_type, CharT &gt; &amp;);
+
+  <span class="emphasis"><em>// <a href="period_parser.html#id1045788-bb">public member functions</a></em></span>
+  <span class="type">period_range_option</span> <a href="period_parser.html#id1045793-bb">range_option</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period_parser.html#id1032535-bb">range_option</a>(period_range_option) ;
+  <span class="type">collection_type</span> <a href="period_parser.html#id836557-bb">delimiter_strings</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period_parser.html#id1110581-bb">delimiter_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                         <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;) ;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> period_type, <span class="bold"><strong>typename</strong></span> duration_type, <span class="bold"><strong>typename</strong></span> facet_type&gt;
+    <span class="type">period_type</span> <a href="period_parser.html#id927324-bb">get_period</a>(stream_itr_type &amp;, stream_itr_type &amp;,
+                           std::ios_base &amp;, <span class="bold"><strong>const</strong></span> period_type &amp;,
+                           <span class="bold"><strong>const</strong></span> duration_type &amp;, <span class="bold"><strong>const</strong></span> facet_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="period_parser.html#id1111200-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="period_parser.html#id1111205-bb">consume_delim</a>(stream_itr_type &amp;, stream_itr_type &amp;,
+                     <span class="bold"><strong>const</strong></span> string_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type default_period_separator;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_start_delimeter;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_open_range_end_delimeter;
+  <span class="bold"><strong>static</strong></span> const char_type default_period_closed_range_end_delimeter;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1113654"></a><h2>Description</h2>
+<p>Provides settings for the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>period_separator -- default '/'</p></li>
+<li><p>period_open_start_delimeter -- default '['</p></li>
+<li><p>period_open_range_end_delimeter -- default ')'</p></li>
+<li><p>period_closed_range_end_delimeter -- default ']'</p></li>
+<li><p>display_as_open_range, display_as_closed_range -- default closed_range</p></li>
+</ul></div>
+<p>For a typical date_period, the contents of the input stream would be </p>
+<pre class="programlisting"> [2004-Jan-04/2004-Feb-01]
+ *
+</pre>
+<p>where the date format is controlled by the date facet </p>
+<div class="refsect2" lang="en">
+<a name="id1113692"></a><h3>
+<a name="period_parserconstruct-copy-destruct"></a><code class="computeroutput">period_parser</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id903628-bb"></a>period_parser(period_range_option range_option = AS_CLOSED_RANGE,
+              <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_separator = default_period_separator,
+              <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_start_delimeter = default_period_start_delimeter,
+              <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_open_range_end_delimeter = default_period_open_range_end_delimeter,
+              <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> period_closed_range_end_delimeter = default_period_closed_range_end_delimeter);</pre></li>
+<li><pre class="literallayout"><a name="id1032768-bb"></a>period_parser(<span class="bold"><strong>const</strong></span> <a href="period_parser.html" title="Class template period_parser">period_parser</a>&lt; date_type, CharT &gt; &amp; p_parser);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1113809"></a><h3>
+<a name="id1045788-bb"></a><code class="computeroutput">period_parser</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">period_range_option</span> <a name="id1045793-bb"></a>range_option() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1032535-bb"></a>range_option(period_range_option option) ;</pre></li>
+<li><pre class="literallayout"><span class="type">collection_type</span> <a name="id836557-bb"></a>delimiter_strings() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1110581-bb"></a>delimiter_strings(<span class="bold"><strong>const</strong></span> string_type &amp; separator,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; start_delim,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; open_end_delim,
+                       <span class="bold"><strong>const</strong></span> string_type &amp; closed_end_delim) ;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> period_type, <span class="bold"><strong>typename</strong></span> duration_type, <span class="bold"><strong>typename</strong></span> facet_type&gt;
+  <span class="type">period_type</span> <a name="id927324-bb"></a>get_period(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                         std::ios_base &amp; a_ios, <span class="bold"><strong>const</strong></span> period_type &amp; p,
+                         <span class="bold"><strong>const</strong></span> duration_type &amp; dur_unit,
+                         <span class="bold"><strong>const</strong></span> facet_type &amp; facet) <span class="bold"><strong>const</strong></span>;</pre>
+<p>This generic code will parse any period using a facet to to get the 'elements'. For example, in the case of a date_period the elements will be instances of a date which will be parsed according the to setup in the passed facet parameter.</p>
+<p>The steps for parsing a period are always the same:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>consume the start delimiter</p></li>
+<li><p>get start element</p></li>
+<li><p>consume the separator</p></li>
+<li><p>get either last or end element depending on range settings</p></li>
+<li><p>consume the end delimeter depending on range settings</p></li>
+</ul></div>
+<p>Thus for a typical date period the contents of the input stream might look like this: </p>
+<pre class="programlisting"> [March 01, 2004/June 07, 2004] &lt;-- closed range
+ [March 01, 2004/June 08, 2004) &lt;-- open range
+
+ *
+</pre>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1114061"></a><h3>
+<a name="id1111200-bb"></a><code class="computeroutput">period_parser</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1111205-bb"></a>consume_delim(stream_itr_type &amp; sitr, stream_itr_type &amp; stream_end,
+                   <span class="bold"><strong>const</strong></span> string_type &amp; delim) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id802180"><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="special_values_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/posix_time_system_config.html b/doc/html/posix_time_system_config.html
new file mode 100644
index 0000000000..864f9a27a1
--- /dev/null
+++ b/doc/html/posix_time_system_config.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class posix_time_system_config</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id937109" title="Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;">
+<link rel="prev" href="simple_time_rep.html" title="Struct simple_time_rep">
+<link rel="next" href="id974575.html" title="Class millisec_posix_time_system_config">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="simple_time_rep.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="id974575.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="posix_time_system_config"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class posix_time_system_config</span></h2>
+<p>boost::posix_time::posix_time_system_config &#8212; </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"><strong>class</strong></span> posix_time_system_config {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <a href="simple_time_rep.html" title="Struct simple_time_rep">simple_time_rep</a>            time_rep_type;     
+  <span class="bold"><strong>typedef</strong></span> gregorian::date            date_type;         
+  <span class="bold"><strong>typedef</strong></span> gregorian::date_duration   date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="id937125.html" title="Class time_duration">time_duration</a>              time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_res_traits::tick_type int_type;          
+  <span class="bold"><strong>typedef</strong></span> time_res_traits            resolution_traits; 
+
+  <span class="emphasis"><em>// <a href="posix_time_system_config.html#id1003410-bb">public member functions</a></em></span>
+  <span class="type"></span> <a href="posix_time_system_config.html#id1003416-bb">BOOST_STATIC_CONSTANT</a>(boost::int64_t, tick_per_second = 1000000000) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1176323"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1176326"></a><h3>
+<a name="id1003410-bb"></a><code class="computeroutput">posix_time_system_config</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id1003416-bb"></a>BOOST_STATIC_CONSTANT(boost::int64_t , tick_per_second = 1000000000) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="simple_time_rep.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="id974575.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/posix_time_zone.html b/doc/html/posix_time_zone.html
new file mode 100644
index 0000000000..afa5703d3b
--- /dev/null
+++ b/doc/html/posix_time_zone.html
@@ -0,0 +1,149 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class posix_time_zone</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id928390" title="Header &lt;boost/date_time/local_time/posix_time_zone.hpp&gt;">
+<link rel="prev" href="bad_adjustment.html" title="Struct bad_adjustment">
+<link rel="next" href="time_zone.html" title="Class time_zone">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_adjustment.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="posix_time_zone"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class posix_time_zone</span></h2>
+<p>boost::local_time::posix_time_zone &#8212; A time zone class constructed from a POSIX time zone string. </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"><strong>class</strong></span> posix_time_zone : <span class="bold"><strong>public</strong></span> boost::local_time::time_zone {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::posix_time::time_duration                  time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> boost::tokenizer&lt; boost::char_separator&lt; <span class="bold"><strong>char</strong></span> &gt; &gt; tokenizer;         
+  <span class="bold"><strong>typedef</strong></span> <a href="time_zone.html" title="Class time_zone">time_zone</a>                                         base_type;         
+  <span class="bold"><strong>typedef</strong></span> base_type::string_type                            string_type;       
+  <span class="bold"><strong>typedef</strong></span> base_type::stringstream_type                      stringstream_type; 
+
+  <span class="emphasis"><em>// <a href="posix_time_zone.html#posix_time_zoneconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="posix_time_zone.html#id800614-bb">posix_time_zone</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+  <a href="posix_time_zone.html#id1035479-bb">~posix_time_zone</a>();
+
+  <span class="emphasis"><em>// <a href="posix_time_zone.html#id997986-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="posix_time_zone.html#id997991-bb">std_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="posix_time_zone.html#id998009-bb">dst_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="posix_time_zone.html#id1041562-bb">std_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="posix_time_zone.html#id836350-bb">dst_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="posix_time_zone.html#id829200-bb">has_dst</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="posix_time_zone.html#id829218-bb">dst_local_start_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="posix_time_zone.html#id866132-bb">dst_local_end_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="posix_time_zone.html#id794662-bb">base_utc_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="posix_time_zone.html#id891864-bb">dst_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="posix_time_zone.html#id939453-bb">to_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="posix_time_zone.html#id1035482-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="posix_time_zone.html#id1035487-bb">calc_zone</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="posix_time_zone.html#id966949-bb">calc_rules</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="posix_time_zone.html#id859521-bb">M_func</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="posix_time_zone.html#id727819-bb">julian_no_leap</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="posix_time_zone.html#id1040403-bb">julian_day</a>(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) ;
+
+  <span class="emphasis"><em>// <a href="posix_time_zone.html#id1042302-bb">private static functions</a></em></span>
+  <span class="type">std::string</span> <a href="posix_time_zone.html#id1042307-bb">td_as_string</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1184714"></a><h2>Description</h2>
+<p>A POSIX time zone string takes the form of:&lt;br&gt; "std offset dst [offset],start[/time],end[/time]" (w/no spaces) 'std' specifies the abbrev of the time zone.
+ 'offset' is the offset from UTC.
+ 'dst' specifies the abbrev of the time zone during daylight savings time.
+ The second offset is how many hours changed during DST. Default=1
+ 'start' and'end' are the dates when DST goes into (and out of) effect.
+ 'offset' takes the form of: [+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}
+ 'time' and 'offset' take the same form. Time defaults=02:00:00
+ 'start' and 'end' can be one of three forms:&lt;br&gt; Mm.w.d {month=1-12, week=1-5 (5 is always last), day=0-6}
+ Jn {n=1-365 Feb29 is never counted}
+ n {n=0-365 Feb29 is counted in leap years}
+ Example "PST-5PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"
+ Exceptions will be thrown under these conditions:&lt;br&gt; An invalid date spec (see date class)
+ A boost::local_time::bad_offset exception will be thrown for:&lt;br&gt; A DST start or end offset that is negative or more than 24 hours
+ A UTC zone that is greater than +12 or less than -12 hours
+ A boost::local_time::bad_adjustment exception will be thrown for:&lt;br&gt; A DST adjustment that is 24 hours or more (positive or negative)
+ </p>
+<div class="refsect2" lang="en">
+<a name="id1184722"></a><h3>
+<a name="posix_time_zoneconstruct-copy-destruct"></a><code class="computeroutput">posix_time_zone</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id800614-bb"></a>posix_time_zone(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></li>
+<li><pre class="literallayout"><a name="id1035479-bb"></a>~posix_time_zone();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1184773"></a><h3>
+<a name="id997986-bb"></a><code class="computeroutput">posix_time_zone</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id997991-bb"></a>std_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id998009-bb"></a>dst_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre>
+<p>For those time zones that have no DST, an empty string is used </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1041562-bb"></a>std_zone_name() <span class="bold"><strong>const</strong></span>;</pre>
+<p>The full STD name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id836350-bb"></a>dst_zone_name() <span class="bold"><strong>const</strong></span>;</pre>
+<p>The full DST name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place. For time zones that have no DST, an empty string is used </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id829200-bb"></a>has_dst() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id829218-bb"></a>dst_local_start_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id866132-bb"></a>dst_local_end_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id794662-bb"></a>base_utc_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id891864-bb"></a>dst_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id939453-bb"></a>to_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1185082"></a><h3>
+<a name="id1035482-bb"></a><code class="computeroutput">posix_time_zone</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1035487-bb"></a>calc_zone(<span class="bold"><strong>const</strong></span> std::string &amp; obj) ;</pre>
+<p>Extract time zone abbreviations for STD &amp; DST as well as the offsets for the time the shift occurs and how much of a shift. At this time full time zone names are NOT extracted so the abbreviations are used in their place </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id966949-bb"></a>calc_rules(<span class="bold"><strong>const</strong></span> std::string &amp; start, <span class="bold"><strong>const</strong></span> std::string &amp; end) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id859521-bb"></a>M_func(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>const</strong></span> std::string &amp; e) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id727819-bb"></a>julian_no_leap(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>const</strong></span> std::string &amp; e) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1040403-bb"></a>julian_day(<span class="bold"><strong>const</strong></span> std::string &amp; s, <span class="bold"><strong>const</strong></span> std::string &amp; e) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1185258"></a><h3>
+<a name="id1042302-bb"></a><code class="computeroutput">posix_time_zone</code> private static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">std::string</span> <a name="id1042307-bb"></a>td_as_string(<span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_adjustment.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id928390"><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="time_zone.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/previous_weekday.html b/doc/html/previous_weekday.html
new file mode 100644
index 0000000000..e339fa4d75
--- /dev/null
+++ b/doc/html/previous_weekday.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template previous_weekday</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="next_weekday.html" title="Function template next_weekday">
+<link rel="next" href="date_itr_base.html" title="Class template date_itr_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="next_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="date_itr_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="previous_weekday"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template previous_weekday</span></h2>
+<p>boost::date_time::previous_weekday &#8212; Generates a date object representing the date of the previous weekday from the given date. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> weekday_type&gt;
+  <span class="type">date_type</span> previous_weekday(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> weekday_type &amp; wd);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1076382"></a><h2>Description</h2>
+<p>Generates a date object representing the date of the previous weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-4. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="next_weekday.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="date_itr_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options.html b/doc/html/program_options.html
index 5635417d20..eebfd51f02 100644
--- a/doc/html/program_options.html
+++ b/doc/html/program_options.html
@@ -1,10 +1,125 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/program_options.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/program_options.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/program_options.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 7. Boost.Program_options</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="apa.html" title="Appendix A. Rationale for some of the design decisions">
+<link rel="next" href="program_options/tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apa.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="program_options/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="program_options"></a>Chapter 7. Boost.Program_options</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Vladimir</span> <span class="surname">Prus</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2002-2004 Vladimir Prus</p></div>
+<div><div class="legalnotice">
+<a name="id1246690"></a><p>Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file <code class="filename">LICENSE_1_0.txt</code> or copy at
+ <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="program_options.html#id1246711">Introduction</a></span></dt>
+<dt><span class="section"><a href="program_options/tutorial.html">Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="program_options/tutorial.html#id1246788">Getting Started</a></span></dt>
+<dt><span class="section"><a href="program_options/tutorial.html#id1246925">Option Details</a></span></dt>
+<dt><span class="section"><a href="program_options/tutorial.html#id1247078">Multiple Sources</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="program_options/overview.html">Library Overview</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="program_options/overview.html#id1247286">Options Description Component</a></span></dt>
+<dt><span class="section"><a href="program_options/overview.html#id1247675">Parsers Component</a></span></dt>
+<dt><span class="section"><a href="program_options/overview.html#id1247729">Storage Component</a></span></dt>
+<dt><span class="section"><a href="program_options/overview.html#id1247812">Specific parsers</a></span></dt>
+<dt><span class="section"><a href="program_options/overview.html#id1247941">Annotated List of Symbols</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="program_options/howto.html">How To</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="program_options/howto.html#id1248034">Non-conventional Syntax</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html#id1248078">Response Files</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html#id1248140">Winmain Command Line</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html#id1248181">Option Groups and Hidden Options</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html#id1248221">Custom Validators</a></span></dt>
+<dt><span class="section"><a href="program_options/howto.html#id1248321">Unicode Support</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="program_options/design.html">Design Discussion</a></span></dt>
+<dd><dl><dt><span class="section"><a href="program_options/design.html#program_options.design.unicode">Unicode Support</a></span></dt></dl></dd>
+<dt><span class="section"><a href="program_options/s06.html">Acknowledgements</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="program_options/reference.html#id658912">Header &lt;boost/program_options/cmdline.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id939963">Header &lt;boost/program_options/environment_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id1006480">Header &lt;boost/program_options/eof_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id696710">Header &lt;boost/program_options/errors.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id864937">Header &lt;boost/program_options/option.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id835103">Header &lt;boost/program_options/options_description.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id730253">Header &lt;boost/program_options/parsers.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id1010451">Header &lt;boost/program_options/positional_options.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id857530">Header &lt;boost/program_options/value_semantic.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id872805">Header &lt;boost/program_options/variables_map.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="program_options/reference.html#id833980">Header &lt;boost/program_options/version.hpp&gt;</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1246711"></a>Introduction</h3></div></div></div>
+<p>The program_options library allows program developers to obtain
+ <span class="emphasis"><em>program options</em></span>, that is (name, value) pairs from the user,
+ via conventional methods such as command line and config file.</p>
+<p>Why would you use such a library, and why is it better than parsing
+ your command line by straightforward hand-written code?
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>It's easier. The syntax for declaring options is simple, and
+ the library itself is small. Things like conversion of option values to
+ desired type and storing into program variables are handled
+ automatically.
+ </p></li>
+<li><p>Error reporting is better. All the problems with the command line are
+ reported, while hand-written code can just misparse the input. In
+ addition, the usage message can be automatically generated, to
+ avoid falling out of sync with the real list of options.</p></li>
+<li><p>Options can be read from anywhere. Sooner or later the command
+ line will be not enough for your users, and you'll want config files
+ or maybe even environment variables. These can be added without significant
+ effort on your part.
+ </p></li>
+</ul></div>
+<p>
+ Now let's see some examples of the library usage in the <a href="program_options/tutorial.html" title="Tutorial">the section called &#8220;Tutorial&#8221;</a>.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 30, 2004 at 13:20:27 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="apa.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="program_options/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/program_options/design.html b/doc/html/program_options/design.html
new file mode 100644
index 0000000000..eaf3cf731a
--- /dev/null
+++ b/doc/html/program_options/design.html
@@ -0,0 +1,193 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Discussion</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="howto.html" title="How To">
+<link rel="next" href="s06.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="howto.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="s06.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="program_options.design"></a>Design Discussion</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="design.html#program_options.design.unicode">Unicode Support</a></span></dt></dl></div>
+<p>This section focuses on some of the design questions.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="program_options.design.unicode"></a>Unicode Support</h4></div></div></div>
+<p>Unicode support was one of the features specifically requested
+ during the formal review. Throughout this document "Unicode support" is
+ a synonym for "wchar_t" support, assuming that "wchar_t" always uses
+ Unicode encoding. Also, when talking about "ascii" (in lowercase) we'll
+ not mean strict 7-bit ASCII encoding, but rather "char" strings in local
+ 8-bit encoding.
+ </p>
+<p>
+ Generally, "Unicode support" can mean
+ many things, but for the program_options library it means that:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Each parser should accept either <code class="computeroutput">char*</code>
+ or <code class="computeroutput">wchar_t*</code>, correctly split the input into option
+ names and option values and return the data.
+ </p></li>
+<li><p>For each option, it should be possible to specify whether the conversion
+ from string to value uses ascii or Unicode.
+ </p></li>
+<li>
+<p>The library guarantees that:
+ </p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>ascii input is passed to an ascii value without change
+ </p></li>
+<li><p>Unicode input is passed to a Unicode value without change</p></li>
+<li><p>ascii input passed to a Unicode value, and Unicode input
+ passed to an ascii value will be converted using a codecvt
+ facet (which may be specified by the user(which can be
+ specified by the user)
+ </p></li>
+</ul></div>
+</li>
+</ul></div>
+<p>The important point is that it's possible to have some "ascii
+ options" together with "Unicode options". There are two reasons for
+ this. First, for a given type you might not have the code to extract the
+ value from Unicode string and it's not good to require that such code be written.
+ Second, imagine a reusable library which has some options and exposes
+ options description in its interface. If <span class="emphasis"><em>all</em></span>
+ options are either ascii or Unicode, and the library does not use any
+ Unicode strings, then the author will likely to use ascii options, which
+ would make the library unusable inside Unicode
+ applications. Essentially, it would be necessary to provide two versions
+ of the library -- ascii and Unicode.
+ </p>
+<p>Another important point is that ascii strings are passed though
+ without modification. In other words, it's not possible to just convert
+ ascii to Unicode and process the Unicode further. The problem is that the
+ default conversion mechanism -- the <code class="computeroutput">codecvt</code> facet -- might
+ not work with 8-bit input without additional setup.
+ </p>
+<p>The Unicode support outlined above is not complete. For example, we
+ don't plan allow Unicode in option names. Unicode support is hard and
+ requires a Boost-wide solution. Even comparing two arbitrary Unicode
+ strings is non-trivial. Finally, using Unicode in option names is
+ related to internationalization, which has it's own
+ complexities. E.g. if option names depend on current locale, then all
+ program parts and other parts which use the name must be
+ internationalized too.
+ </p>
+<p>The primary question in implementing the Unicode support is whether
+ to use templates and <code class="computeroutput">std::basic_string</code> or to use some
+ internal encoding and convert between internal and external encodings on
+ the interface boundaries.
+ </p>
+<p>The choice, mostly, is between code size and execution
+ speed. A templated solution would either link library code into every
+ application that uses the library (thereby making shared library
+ impossible), or provide explicit instantiations in the shared library
+ (increasing its size). The solution based on internal encoding would
+ necessarily make conversions in a number of places and will be somewhat slower.
+ Since speed is generally not an issue for this library, the second
+ solution looks more attractive, but we'll take a closer look at
+ individual components.
+ </p>
+<p>For the parsers component, we have three choices:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Use a fully templated implementation: given a string of a
+ certain type, a parser will return a instance
+ with strings of the same type (i.e. the class
+ will be templated).</p></li>
+<li><p>Use internal encoding: same as above, but strings will be converted to and
+ from the internal encoding.</p></li>
+<li><p>Use and partly expose the internal encoding: same as above,
+ but the strings in the instance will be in the
+ internal encoding. This might avoid a conversion if
+ instance is passed directly to other components,
+ but can be also dangerous or confusing for a user.
+ </p></li>
+</ul></div>
+<p>The second solution appears to be the best -- it does not increase
+ the code size much and is cleaner than the third. To avoid extra
+ conversions, the Unicode version of can also store
+ strings in internal encoding.
+ </p>
+<p>For the options descriptions component, we don't have much
+ choice. Since it's not desirable to have either all options use ascii or all
+ of them use Unicode, but rather have some ascii and some Unicode options, the
+ interface of the must work with both. The only way is
+ to pass an additional flag telling if strings use ascii or internal encoding.
+ The instance of can then convert into some
+ other encoding if needed.
+ </p>
+<p>For the storage component, the only affected function is .
+ For Unicode input, the function should convert the value to the
+ internal encoding. It should also inform the class
+ about the used encoding.
+ </p>
+<p>Finally, what internal encoding should we use? The
+ alternatives are:
+ <code class="computeroutput">std::wstring</code> (using UCS-4 encoding) and
+ <code class="computeroutput">std::string</code> (using UTF-8 encoding). The difference between
+ alternatives is:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Speed: UTF-8 is a bit slower</p></li>
+<li><p>Space: UTF-8 takes less space when input is ascii</p></li>
+<li><p>Code size: UTF-8 requires additional conversion code. However,
+ it allows one to use existing parsers without converting them to
+ <code class="computeroutput">std::wstring</code> and such conversion is likely to create a
+ number of new instantiations.
+ </p></li>
+</ul></div>
+<p>
+ There's no clear leader, but the last point seems important, so UTF-8
+ will be used.
+ </p>
+<p>Choosing the UTF-8 encoding allows the use of existing parsers,
+ because 7-bit ascii characters retain their values in UTF-8,
+ so searching for 7-bit strings is simple. However, there are
+ two subtle issues:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>We need to assume the character literals use ascii encoding
+ and that inputs use Unicode encoding.</p></li>
+<li><p>A Unicode character (say '=') can be followed by 'composing
+ character' and the combination is not the same as just '=', so a
+ simple search for '=' might find the wrong character.
+ </p></li>
+</ul></div>
+<p>
+ Neither of these issues appear to be critical in practice, since ascii is
+ almost universal encoding and since composing characters following '=' (and
+ other characters with special meaning to the library) are not likely to appear.
+ </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="howto.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="s06.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options/howto.html b/doc/html/program_options/howto.html
new file mode 100644
index 0000000000..189ffd7536
--- /dev/null
+++ b/doc/html/program_options/howto.html
@@ -0,0 +1,390 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>How To</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="overview.html" title="Library Overview">
+<link rel="next" href="design.html" title="Design Discussion">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="design.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="program_options.howto"></a>How To</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="howto.html#id1248034">Non-conventional Syntax</a></span></dt>
+<dt><span class="section"><a href="howto.html#id1248078">Response Files</a></span></dt>
+<dt><span class="section"><a href="howto.html#id1248140">Winmain Command Line</a></span></dt>
+<dt><span class="section"><a href="howto.html#id1248181">Option Groups and Hidden Options</a></span></dt>
+<dt><span class="section"><a href="howto.html#id1248221">Custom Validators</a></span></dt>
+<dt><span class="section"><a href="howto.html#id1248321">Unicode Support</a></span></dt>
+</dl></div>
+<p>This section describes how the library can be used in specific
+ situations.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248034"></a>Non-conventional Syntax</h4></div></div></div>
+<p>Sometimes, standard command line syntaxes are not enough. For
+ example, the gcc compiler has "-frtti" and -fno-rtti" options, and this
+ syntax is not directly supported.
+ </p>
+<a class="indexterm" name="id1248043"></a><p>For such cases, the library allows the user to provide an
+ <em class="firstterm">additional parser</em> -- a function which will be called on each
+ command line element, before any processing by the library. If the
+ additional parser recognises the syntax, it returns the option name and
+ value, which are used directly. The above example can be handled by the
+ following code:
+ </p>
+<pre class="programlisting">
+pair&lt;string, string&gt; reg_foo(const string&amp; s)
+{
+ if (s.find("-f") == 0) {
+ if (s.substr(2, 3) == "no-")
+ return make_pair(s.substr(5), string("false"));
+ else
+ return make_pair(s.substr(2), string("true"));
+ } else {
+ return make_pair(string(), string());
+ }
+}
+</pre>
+<p>
+ Here's the definition of the additional parser. When parsing the command
+ line, we pass the additional parser:
+</p>
+<pre class="programlisting">
+store(command_line_parser(ac, av).options(desc).extra_parser(reg_foo)
+ .run(), vm);
+</pre>
+<p>
+ The complete example can be found in the "example/custom_syntax.cpp"
+ file.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248078"></a>Response Files</h4></div></div></div>
+<a class="indexterm" name="id1248082"></a><p>Some operating system have very low limits of the command line
+ length. The common way to work around those limitations is using
+ <em class="firstterm">response files</em>. A response file is just a
+ configuration file which uses the same syntax as the command line. If
+ the command line specifies a name of response file to use, it's loaded
+ and parsed in addition to the command line. The library does not
+ provide direct support for response files, so you'll need to write some
+ extra code.
+ </p>
+<p>
+ First, you need to define an option for the response file:
+</p>
+<pre class="programlisting">
+("response-file", value&lt;string&gt;(),
+ "can be specified with '@name', too")
+</pre>
+<p>Second, you'll need an additional parser to support the standard syntax
+ for specifying response files: "@file":
+</p>
+<pre class="programlisting">
+pair&lt;string, string&gt; at_option_parser(string const&amp;s)
+{
+ if ('@' == s[0])
+ return std::make_pair(string("response-file"), s.substr(1));
+ else
+ return pair&lt;string, string&gt;();
+}
+</pre>
+<p>Finally, when the "response-file" option is found, you'll have to
+ load that file and pass it to the command line parser. This part is the
+ hardest. We'll use the Boost.Tokenizer library, which works but has some
+ limitations. You might also consider Boost.StringAlgo. The code is:
+</p>
+<pre class="programlisting">
+if (vm.count("response-file")) {
+ // Load the file and tokenize it
+ ifstream ifs(vm["response-file"].as&lt;string&gt;().c_str());
+ if (!ifs) {
+ cout &lt;&lt; "Could no open the response file\n";
+ return 1;
+ }
+ // Read the whole file into a string
+ stringstream ss;
+ ss &lt;&lt; ifs.rdbuf();
+ // Split the file content
+ char_separator&lt;char&gt; sep(" \n\r");
+ tokenizer&lt;char_separator&lt;char&gt; &gt; tok(ss.str(), sep);
+ vector&lt;string&gt; args;
+ copy(tok.begin(), tok.end(), back_inserter(args));
+ // Parse the file and store the options
+ store(command_line_parser(args).options(desc).run(), vm);
+}
+</pre>
+<p>
+ The complete example can be found in the "example/response_file.cpp"
+ file.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248140"></a>Winmain Command Line</h4></div></div></div>
+<p>On the Windows operating system, GUI applications receive the
+ command line as a single string, not split into elements. For that reason,
+ the command line parser cannot be used directly. At least on some
+ compilers, it is possible to obtain
+ the split command line, but it's not clear if all compilers support the
+ same mechanism on all versions of the operating system. The
+ <code class="computeroutput">split_winmain</code> function is a portable mechanism provided
+ by the library.</p>
+<p>Here's an example of use:
+</p>
+<pre class="programlisting">
+vector&lt;string&gt; args = split_winmain(lpCmdLine);
+store(command_line_parser(args).options(desc).run(), vm);
+</pre>
+<p>
+ The function is an overload for <code class="computeroutput">wchar_t</code> strings, so can
+ also be used in Unicode applications.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248181"></a>Option Groups and Hidden Options</h4></div></div></div>
+<p>Having a single instance of the class with all
+ the program's options can be problematic:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Some options make sense only for specific source, for example,
+ configuration files.</p></li>
+<li><p>The user would prefer some structure in the generated help message.</p></li>
+<li><p>Some options shouldn't appear in the generated help message at all.</p></li>
+</ul></div>
+<p>To solve the above issues, the library allows a programmer to create several
+ instances of the class, which can be merged in
+ different combinations. The following example will define three groups of
+ options: command line specific, and two options group for specific program
+ modules, only one of which is shown in the generated help message.
+ </p>
+<p>Each group is defined using standard syntax. However, you should
+ use reasonable names for each instance:
+</p>
+<pre class="programlisting">
+options_description general("General options");
+general.add_options()
+ ("help", "produce a help message")
+ ("help-module", value&lt;string&gt;()-&gt;implicit(),
+ "produce a help for a given module")
+ ("version", "output the version number")
+ ;
+
+options_description gui("GUI options");
+gui.add_options()
+ ("display", value&lt;string&gt;(), "display to use")
+ ;
+
+options_description backend("Backend options");
+backend.add_options()
+ ("num-threads", value&lt;int&gt;(), "the initial number of threads")
+ ;
+</pre>
+<p>After declaring options groups, we merge them in two
+ combinations. The first will include all options and be used for parsing. The
+ second will be used for the "--help" option.
+</p>
+<pre class="programlisting">
+// Declare an options description instance which will include
+// all the options
+options_description all("Allowed options");
+all.add(general).add(gui).add(backend);
+
+// Declare an options description instance which will be shown
+// to the user
+options_description visible("Allowed options");
+visible.add(general).add(gui);
+</pre>
+<p>What is left is to parse and handle the options:
+</p>
+<pre class="programlisting">
+variables_map vm;
+store(parse_command_line(ac, av, all), vm);
+
+if (vm.count("help"))
+{
+ cout &lt;&lt; visible;
+ return 0;
+}
+if (vm.count("help-module")) {
+ const string&amp; s = vm["help-module"].as&lt;string&gt;();
+ if (s == "gui") {
+ cout &lt;&lt; gui;
+ } else if (s == "backend") {
+ cout &lt;&lt; backend;
+ } else {
+ cout &lt;&lt; "Unknown module '"
+ &lt;&lt; s &lt;&lt; "' in the --help-module option\n";
+ return 1;
+ }
+ return 0;
+}
+if (vm.count("num-threads")) {
+ cout &lt;&lt; "The 'num-threads' options was set to "
+ &lt;&lt; vm["num-threads"].as&lt;int&gt;() &lt;&lt; "\n";
+}
+</pre>
+<p>
+ When parsing the command line, all options are allowed. The "--help"
+ message, however, does not include the "Backend options" group -- the
+ options in that group are hidden. The user can explicitly force the
+ display of that options group by passing "--help-module backend"
+ option. The complete example can be found in the
+ "example/option_groups.cpp" file.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248221"></a>Custom Validators</h4></div></div></div>
+<p>By default, the conversion of option's value from string into C++
+ type is done using iostreams, which sometimes is not convenient. The
+ library allows the user to customize the conversion for specific
+ classes. In order to do so, the user should provide suitable overload of
+ the <code class="computeroutput">validate</code> function.
+ </p>
+<p>
+ Let's first define a simple class:
+</p>
+<pre class="programlisting">
+struct magic_number {
+public:
+ magic_number(int n) : n(n) {}
+ int n;
+};
+</pre>
+<p> and then overload the <code class="computeroutput">validate</code> function:
+</p>
+<pre class="programlisting">
+void validate(boost::any&amp; v,
+ const std::vector&lt;std::string&gt;&amp; values,
+ magic_number* target_type, int)
+{
+ static regex r("\\d\\d\\d-(\\d\\d\\d)");
+
+ using namespace boost::program_options;
+
+ // Make sure no previous assignment to 'a' was made.
+ validators::check_first_occurence(v);
+ // Extract the first string from 'values'. If there is more than
+ // one string, it's an error, and exception will be thrown.
+ const string&amp; s = validators::get_single_string(values);
+
+ // Do regex match and convert the interesting part to
+ // int.
+ smatch match;
+ if (regex_match(s, match, r)) {
+ v = any(magic_number(lexical_cast&lt;int&gt;(match[1])));
+ } else {
+ throw validation_error("invalid value");
+ }
+}
+</pre>
+<p>The function takes four parameters. The first is the storage
+ for the value, and in this case is either empty or contains an instance of
+ the <code class="computeroutput">magic_number</code> class. The second is the list of strings
+ found in the next occurrence of the option. The remaining two parameters
+ are needed to workaround the lack of partial template specialization and
+ partial function template ordering on some compilers.
+ </p>
+<p>The function first checks that we don't try to assign to the same
+ option twice. Then it checks that only a single string was passed
+ in. Next the string is verified with the help of the Boost.Regex
+ library. If that test is passed, the parsed value is stored into the
+ <code class="computeroutput">v</code> variable.
+ </p>
+<p>The complete example can be found in the "example/regex.cpp" file.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248321"></a>Unicode Support</h4></div></div></div>
+<p>To use the library with Unicode, you'd need to:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Use Unicode-aware parsers for Unicode input</p></li>
+<li><p>Require Unicode support for options which need it</p></li>
+</ul></div>
+<p>Most of the parsers have Unicode versions. For example, the
+ function has an overload which takes
+ <code class="computeroutput">wchar_t</code> strings, instead of ordinary <code class="computeroutput">char</code>.
+ </p>
+<p>Even if some of the parsers are Unicode-aware, it does not mean you
+ need to change definition of all the options. In fact, for many options,
+ like integer ones, it makes no sense. To make use of Unicode you'll need
+ <span class="emphasis"><em>some</em></span> Unicode-aware options. They are different from
+ ordinary options in that they accept <code class="computeroutput">wstring</code> input, and
+ process it using wide character streams. Creating an Unicode-aware option
+ is easy: just use the the <code class="computeroutput">wvalue</code> function instead of the
+ regular <code class="computeroutput">value</code>.
+ </p>
+<p>When an ascii parser passes data to an ascii option, or a Unicode
+ parser passes data to a Unicode option, the data are not changed at
+ all. So, the ascii option will see a string in local 8-bit encoding, and
+ the Unicode option will see whatever string was passed as the Unicode
+ input.
+ </p>
+<p>What happens when Unicode data is passed to an ascii option, and
+ vice versa? The library automatically performs the conversion from
+ Unicode to local 8-bit encoding. For example, if command line is in
+ ascii, but you use <code class="computeroutput">wstring</code> options, then the ascii input
+ will be converted into Unicode.
+ </p>
+<p>To perform the conversion, the library uses the <code class="computeroutput">codecvt&lt;wchar_t,
+ char&gt;</code> locale facet from the global locale. If
+ you want to work with strings that use local 8-bit encoding (as opposed to
+ 7-bit ascii subset), your application should start with:
+ </p>
+<pre class="programlisting">
+locale::global(locale(""));
+ </pre>
+<p>
+ which would set up the conversion facet according to the user's selected
+ locale.
+ </p>
+<p>It's wise to check the status of the C++ locale support on your
+ implementation, though. The quick test involves three steps:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li><p>Go the the "test" directory and build the "test_convert" binary.</p></li>
+<li>
+<p>Set some non-ascii locale in the environmemt. On Linux, one can
+ run, for example: </p>
+<pre class="screen">
+$ export LC_CTYPE=ru_RU.KOI8-R
+</pre>
+</li>
+<li><p>Run the "test_convert" binary with any non-ascii string in the
+ selected encoding as its parameter. If you see a list of Unicode codepoints,
+ everything's OK. Otherwise, locale support on your system might be
+ broken.</p></li>
+</ol></div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="design.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options/overview.html b/doc/html/program_options/overview.html
new file mode 100644
index 0000000000..be007638db
--- /dev/null
+++ b/doc/html/program_options/overview.html
@@ -0,0 +1,540 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Library Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="howto.html" title="How To">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="howto.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="program_options.overview"></a>Library Overview</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="overview.html#id1247286">Options Description Component</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247675">Parsers Component</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247729">Storage Component</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247812">Specific parsers</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247941">Annotated List of Symbols</a></span></dt>
+</dl></div>
+<p>In the tutorial section, we saw several examples of library usage.
+ Here we will describe the overall library design including the primary
+ components and their function.
+ </p>
+<p>The library has three main components:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>The options description component, which describes the allowed options
+ and what to do with the values of the options.
+ </p></li>
+<li><p>The parsers component, which uses this information to find option names
+ and values in the input sources and return them.
+ </p></li>
+<li><p>The storage component, which provides the
+ interface to access the value of an option. It also converts the string
+ representation of values that parsers return into desired C++ types.
+ </p></li>
+</ul></div>
+<p>To be a little more concrete, the <code class="computeroutput">options_description</code>
+ class is from the options description component, the
+ <code class="computeroutput">parse_command_line</code> function is from the parsers component, and the
+ <code class="computeroutput">variables_map</code> class is from the storage component. </p>
+<p>In the tutorial we've learned how those components can be used by the
+ <code class="computeroutput">main</code> function to parse the command line and config
+ file. Before going into the details of each component, a few notes about
+ the world outside of <code class="computeroutput">main</code>.
+ </p>
+<p>
+ For that outside world, the storage component is the most important. It
+ provides a class which stores all option values and that class can be
+ freely passed around your program to modules which need access to the
+ options. All the other components can be used only in the place where
+ the actual parsing is the done. However, it might also make sense for the
+ individual program modules to describe their options and pass them to the
+ main module, which will merge all options. Of course, this is only
+ important when the number of options is large and declaring them in one
+ place becomes troublesome.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247286"></a>Options Description Component</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="overview.html#id1247436">Syntactic Information</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247572">Semantic Information</a></span></dt>
+<dt><span class="section"><a href="overview.html#id1247613">Positional Options</a></span></dt>
+</dl></div>
+<p>The options description component has three main classes:
+ , and . The
+ first two together describe a single option. The
+ class contains the option's name, description and a pointer to ,
+ which, in turn, knows the type of the option's value and can parse the value,
+ apply the default value, and so on. The class is a
+ container for instances of .
+ </p>
+<p>For almost every library, those classes could be created in a
+ conventional way: that is, you'd create new options using constructors and
+ then call the <code class="computeroutput">add</code> method of . However,
+ that's overly verbose for declaring 20 or 30 options. This concern led
+ to creation of the syntax that you've already seen:
+</p>
+<pre class="programlisting">
+options_description desc;
+desc.add_options()
+ ("help", "produce help")
+ ("optimization", value&lt;int&gt;()-&gt;default_value(10), "optimization level")
+ ;
+</pre>
+<p>The call to the <code class="computeroutput">value</code> function creates an instance of
+ a class derived from the <code class="computeroutput">value_semantic</code> class: <code class="computeroutput">typed_value</code>.
+ That class contains the code to parse
+ values of a specific type, and contains a number of methods which can be
+ called by the user to specify additional information. (This
+ essentially emulates named parameters of the constructor.) Calls to
+ <code class="computeroutput">operator()</code> on the object returned by <code class="computeroutput">add_options</code>
+ forward arguments to the constructor of the <code class="computeroutput">option_description</code>
+ class and add the new instance.
+ </p>
+<p>
+ Note that in addition to the
+ <code class="computeroutput">value</code>, library provides the <code class="computeroutput">bool_switch</code>
+ function, and user can write his own function which will return
+ other subclasses of <code class="computeroutput">value_semantic</code> with
+ different behaviour. For the remainder of this section, we'll talk only
+ about the <code class="computeroutput">value</code> function.
+ </p>
+<p>The information about an option is divided into syntactic and
+ semantic. Syntactic information includes the name of the option and the
+ number of tokens which can be used to specify the value. This
+ information is used by parsers to group tokens into (name, value) pairs,
+ where value is just a vector of strings
+ (<code class="computeroutput">std::vector&lt;std::string&gt;</code>). The semantic layer
+ is responsible for converting the value of the option into more usable C++
+ types.
+ </p>
+<p>This separation is an important part of library design. The parsers
+ use only the syntactic layer, which takes away some of the freedom to
+ use overly complex structures. For example, it's not easy to parse
+ syntax like: </p>
+<pre class="screen">calc --expression=1 + 2/3</pre>
+<p> because it's not
+ possible to parse </p>
+<pre class="screen">1 + 2/3</pre>
+<p> without knowing that it's a C
+ expression. With a little help from the user the task becomes trivial,
+ and the syntax clear: </p>
+<pre class="screen">calc --expression="1 + 2/3"</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1247436"></a>Syntactic Information</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="overview.html#id1247509">Description formatting</a></span></dt></dl></div>
+<p>The syntactic information is provided by the
+ <code class="computeroutput"><a href="../options_description.html" title="Class options_description">boost::program_options::options_description</a></code> class
+ and some methods of the
+ <code class="computeroutput"><a href="../value_semantic.html" title="Class value_semantic">boost::program_options::value_semantic</a></code> class
+ and includes:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>
+ name of the option, used to identify the option inside the
+ program,
+ </p></li>
+<li><p>
+ description of the option, which can be presented to the user,
+ </p></li>
+<li><p>
+ the allowed number of source tokens that comprise options's
+ value, which is used during parsing.
+ </p></li>
+</ul></div>
+<p>Consider the following example:
+ </p>
+<pre class="programlisting">
+options_description desc;
+desc.add_options()
+ ("help", "produce help message")
+ ("compression", value&lt;string&gt;(), "compression level")
+ ("verbose", value&lt;string&gt;()-&gt;implicit(), "verbosity level")
+ ("email", value&lt;string&gt;()-&gt;multitoken(), "email to send to")
+ ;
+ </pre>
+<p>
+ For the first parameter, we specify only the name and the
+ description. No value can be specified in the parsed source.
+ For the first option, the user must specify a value, using a single
+ token. For the third option, the user may either provide a single token
+ for the value, or no token at all. For the last option, the value can
+ span several tokens. For example, the following command line is OK:
+ </p>
+<pre class="screen">
+ test --help --compression 10 --verbose --email beadle@mars beadle2@mars
+ </pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="id1247509"></a>Description formatting</h6></div></div></div>
+<p>
+ Sometimes the description can get rather long, for example, when
+ several option's values need separate documentation. Below we
+ describe some simple formatting mechanisms you can use.
+ </p>
+<p>The description string has one or more paragraphs, separated by
+ the newline character ('\n'). When an option is output, the library
+ will compute the indentation for options's description. Each of the
+ paragraph is output as a separate line with that intentation. If
+ a paragraph does not fit on one line it is spanned over multiple
+ lines (which will have the same indentation).
+ </p>
+<p>You may specify additional indent for the first specified by
+ inserting spaces at the beginning of a paragraph. For example:
+ </p>
+<pre class="programlisting">
+options.add_options()
+ ("help", " A long help msg a long help msg a long help msg a long help
+msg a long help msg a long help msg a long help msg a long help msg ")
+ ;
+ </pre>
+<p>
+ will specify a four-space indent for the first line. The output will
+ look like:
+ </p>
+<pre class="screen">
+ --help A long help msg a long
+ help msg a long help msg
+ a long help msg a long
+ help msg a long help msg
+ a long help msg a long
+ help msg
+
+ </pre>
+<p>For the case where line is wrapped, you can want an additional
+ indent for wrapped text. This can be done by
+ inserting a tabulator character ('\t') at the desired position. For
+ example:
+ </p>
+<pre class="programlisting">
+options.add_options()
+ ("well_formated", "As you can see this is a very well formatted
+option description.\n"
+ "You can do this for example:\n\n"
+ "Values:\n"
+ " Value1: \tdoes this and that, bla bla bla bla
+bla bla bla bla bla bla bla bla bla bla bla\n"
+ " Value2: \tdoes something else, bla bla bla bla
+bla bla bla bla bla bla bla bla bla bla bla\n\n"
+ " This paragraph has a first line indent only,
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla");
+ </pre>
+<p>
+ will produce:
+ </p>
+<pre class="screen">
+ --well_formated As you can see this is a
+ very well formatted
+ option description.
+ You can do this for
+ example:
+
+ Values:
+ Value1: does this and
+ that, bla bla
+ bla bla bla bla
+ bla bla bla bla
+ bla bla bla bla
+ bla
+ Value2: does something
+ else, bla bla
+ bla bla bla bla
+ bla bla bla bla
+ bla bla bla bla
+ bla
+
+ This paragraph has a
+ first line indent only,
+ bla bla bla bla bla bla
+ bla bla bla bla bla bla
+ bla bla bla
+ </pre>
+<p>
+ The tab character is removed before output. Only one tabulator per
+ paragraph is allowed, otherwisee an exception of type
+ program_options::error is thrown. Finally, the tabulator is ignored if
+ it's is not on the first line of the paragraph or is on the last
+ possible position of the first line.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1247572"></a>Semantic Information</h5></div></div></div>
+<p>The semantic information is completely provided by the
+ <code class="computeroutput"><a href="../value_semantic.html" title="Class value_semantic">boost::program_options::value_semantic</a></code> class. For
+ example:
+</p>
+<pre class="programlisting">
+options_description desc;
+desc.add_options()
+ ("compression", value&lt;int&gt;()-&gt;default_value(10), "compression level")
+ ("email", value&lt; vector&lt;string&gt; &gt;()
+ -&gt;composing()-&gt;notifier(&amp;your_function), "email")
+ ;
+</pre>
+<p>
+ These declarations specify that default value of the first option is 10,
+ that the second option can appear several times and all instances should
+ be merged, and that after parsing is done, the library will call
+ function <code class="computeroutput">&amp;your_function</code>, passing the value of the
+ "email" option as argument.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1247613"></a>Positional Options</h5></div></div></div>
+<p>Our definition of option as (name, value) pairs is simple and
+ useful, but in one special case of the command line, there's a
+ problem. A command line can include a <em class="firstterm">positional option</em>,
+ which does not specify any name at all, for example:
+ </p>
+<pre class="screen">
+ archiver --compression=9 /etc/passwd
+ </pre>
+<p>
+ Here, the "/etc/passwd" element does not have any option name.
+ </p>
+<p>One solution is to ask the user to extract positional options
+ himself and process them as he likes. However, there's a nicer approach
+ -- provide a method to automatically assign the names for positional
+ options, so that the above command line can be interpreted the same way
+ as:
+ </p>
+<pre class="screen">
+ archiver --compression=9 --input-file=/etc/passwd
+ </pre>
+<p>The class allows the command line
+ parser to assign the names. The class specifies how many positional options
+ are allowed, and for each allowed option, specifies the name. For example:
+</p>
+<pre class="programlisting">
+positional_options_description pd; pd.add("input-file", 1);
+</pre>
+<p> specifies that for exactly one, first, positional
+ option the name will be "input-file".
+ </p>
+<p>It's possible to specify that a number, or even all positional options, be
+ given the same name.
+</p>
+<pre class="programlisting">
+positional_options_description pd;
+pd.add("output-file", 2).add_optional("input-file", -1);
+</pre>
+<p>
+ In the above example, the first two positional options will be associated
+ with name "output-file", and any others with the name "input-file".
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247675"></a>Parsers Component</h4></div></div></div>
+<p>The parsers component splits input sources into (name, value) pairs.
+ Each parser looks for possible options and consults the options
+ description component to determine if the option is known and how its value
+ is specified. In the simplest case, the name is explicitly specified,
+ which allows the library to decide if such option is known. If it is known, the
+ instance determines how the value is specified. (If
+ it is not known, an exception is thrown.) Common
+ cases are when the value is explicitly specified by the user, and when
+ the value cannot be specified by the user, but the presence of the
+ option implies some value (for example, <code class="computeroutput">true</code>). So, the
+ parser checks that the value is specified when needed and not specified
+ when not needed, and returns new (name, value) pair.
+ </p>
+<p>
+ To invoke a parser you typically call a function, passing the options
+ description and command line or config file or something else.
+ The results of parsing are returned as an instance of the
+ class. Typically, that object is passed directly to the storage
+ component. However, it also can be used directly, or undergo some additional
+ processing.
+ </p>
+<p>
+ There are three exceptions to the above model -- all related to
+ traditional usage of the command line. While they require some support
+ from the options description component, the additional complexity is
+ tolerable.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>The name specified on the command line may be
+ different from the option name -- it's common to provide a "short option
+ name" alias to a longer name. It's also common to allow an abbreviated name
+ to be specified on the command line.
+ </p></li>
+<li><p>Sometimes it's desirable to specify value as several
+ tokens. For example, an option "--email-recipient" may be followed
+ by several emails, each as a separate command line token. This
+ behaviour is supported, though it can lead to parsing ambiguities
+ and is not enabled by default.
+ </p></li>
+<li><p>The command line may contain positional options -- elements
+ which don't have any name. The command line parser provides a
+ mechanism to guess names for such options, as we've seen in the
+ tutorial.
+ </p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247729"></a>Storage Component</h4></div></div></div>
+<p>The storage component is responsible for:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Storing the final values of an option into a special class and in
+ regular variables</p></li>
+<li><p>Handling priorities among different sources.</p></li>
+<li><p>Calling user-specified <code class="computeroutput">notify</code> functions with the final
+ values of options.</p></li>
+</ul></div>
+<p>Let's consider an example:
+</p>
+<pre class="programlisting">
+variables_map vm;
+store(parse_command_line(argc, argv, desc), vm);
+store(parse_config_file("example.cfg", desc), vm);
+notify(vm);
+</pre>
+<p>
+ The <code class="computeroutput">variables_map</code> class is used to store the option
+ values. The two calls to the <code class="computeroutput">store</code> function add values
+ found on the command line and in the config file. Finally the call to
+ the <code class="computeroutput">notify</code> function runs the user-specified notify
+ functions and stores the values into regular variables, if needed.
+ </p>
+<p>The priority is handled in a simple way: the <code class="computeroutput">store</code>
+ function will not change the value of an option if it's already
+ assigned. In this case, if the command line specifies the value for an
+ option, any value in the config file is ignored.
+ </p>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p>Don't forget to call the <code class="computeroutput">notify</code> function after you've
+ stored all parsed values.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247812"></a>Specific parsers</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="overview.html#id1247816">Environment variables</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1247816"></a>Environment variables</h5></div></div></div>
+<p><em class="firstterm">Environment variables</em> are string variables
+ which are available to all programs via the <code class="computeroutput">getenv</code> function
+ of C runtime library. The operating system allows to set initial values
+ for a given user, and the values can be further changed on the command
+ line. For example, on Windows one can use the
+ <code class="filename">autoexec.bat</code> file or (on recent versions) the
+ <code class="filename">Control Panel/System/Advanced/Environment Variables</code>
+ dialog, and on Unix &#8212;, the <code class="filename">/etc/profile</code>,
+ <code class="filename">~/profile</code> and <code class="filename">~/bash_profile</code>
+ files. Because environment variables can be set for the entire system,
+ they are particularly suitable for options which apply to all programs.
+ </p>
+<p>The environment variables can be parsed with the
+ function. The function have several overloaded
+ versions. The first parameter is always an
+ instance, and the second specifies what variables must be processed, and
+ what option names must correspond to it. To describe the second
+ parameter we need to consider naming conventions for environment
+ variables.</p>
+<p>If you have an option that should be specified via environment
+ variable, you need make up the variable's name. To avoid name clashes,
+ we suggest that you use a sufficiently unique prefix for environment
+ variables. Also, while option names are most likely in lower case,
+ environment variables conventionally use upper case. So, for an option
+ name <code class="literal">proxy</code> the environment variable might be called
+ <code class="envar">BOOST_PROXY</code>. During parsing, we need to perform reverse
+ conversion of the names. This is accomplished by passing the choosen
+ prefix as the second parameter of the function.
+ Say, if you pass <code class="literal">BOOST_</code> as the prefix, and there are
+ two variables, <code class="envar">CVSROOT</code> and <code class="envar">BOOST_PROXY</code>, the
+ first variable will be ignored, and the second one will be converted to
+ option <code class="literal">proxy</code>.
+ </p>
+<p>The above logic is sufficient in many cases, but it is also
+ possible to pass, as the second parameter of the
+ function, any function taking a <code class="computeroutput">std::string</code> and returning
+ <code class="computeroutput">std::string</code>. That function will be called for each
+ environment variable and should return either the name of the option, or
+ empty string if the variable should be ignored.
+ </p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247941"></a>Annotated List of Symbols</h4></div></div></div>
+<p>The following table describes all the important symbols in the
+ library, for quick access.</p>
+<div class="informaltable"><table class="table" width="100%">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Symbol</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr><td colspan="2">Options description component</td></tr>
+<tr>
+<td> </td>
+<td>describes a number of options</td>
+</tr>
+<tr>
+<td> </td>
+<td>defines the option's value</td>
+</tr>
+<tr><td colspan="2">Parsers component</td></tr>
+<tr>
+<td> </td>
+<td>parses command line</td>
+</tr>
+<tr>
+<td> </td>
+<td>parses config file</td>
+</tr>
+<tr>
+<td> </td>
+<td>parses environment</td>
+</tr>
+<tr><td colspan="2">Storage component</td></tr>
+<tr>
+<td> </td>
+<td>storage for option values</td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="howto.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options/reference.html b/doc/html/program_options/reference.html
new file mode 100644
index 0000000000..ed29ec1300
--- /dev/null
+++ b/doc/html/program_options/reference.html
@@ -0,0 +1,206 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="s06.html" title="Acknowledgements">
+<link rel="next" href="../id801451.html" title="Type style_t">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="../id801451.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="program_options.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#id658912">Header &lt;boost/program_options/cmdline.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id939963">Header &lt;boost/program_options/environment_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1006480">Header &lt;boost/program_options/eof_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id696710">Header &lt;boost/program_options/errors.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id864937">Header &lt;boost/program_options/option.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id835103">Header &lt;boost/program_options/options_description.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id730253">Header &lt;boost/program_options/parsers.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1010451">Header &lt;boost/program_options/positional_options.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id857530">Header &lt;boost/program_options/value_semantic.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id872805">Header &lt;boost/program_options/variables_map.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id833980">Header &lt;boost/program_options/version.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id658912"></a>Header &lt;<a href="../../../boost/program_options/cmdline.hpp" target="_top">boost/program_options/cmdline.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>namespace</strong></span> command_line_style {
+      <span class="bold"><strong>enum</strong></span> <a href="../id801451.html" title="Type style_t">style_t</a>;
+    }
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id939963"></a>Header &lt;<a href="../../../boost/program_options/environment_iterator.hpp" target="_top">boost/program_options/environment_iterator.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../environment_iterator.html" title="Class environment_iterator">environment_iterator</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1006480"></a>Header &lt;<a href="../../../boost/program_options/eof_iterator.hpp" target="_top">boost/program_options/eof_iterator.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Derived, <span class="bold"><strong>typename</strong></span> ValueType&gt; <span class="bold"><strong>class</strong></span> <a href="../eof_iterator.html" title="Class template eof_iterator">eof_iterator</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id696710"></a>Header &lt;<a href="../../../boost/program_options/errors.hpp" target="_top">boost/program_options/errors.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>class</strong></span> <a href="../ambiguous_option.html" title="Class ambiguous_option">ambiguous_option</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../error.html" title="Class error">error</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../invalid_command_line_style.html" title="Class invalid_command_line_style">invalid_command_line_style</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../id935311.html" title="Class invalid_command_line_syntax">invalid_command_line_syntax</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../invalid_option_value.html" title="Class invalid_option_value">invalid_option_value</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../invalid_syntax.html" title="Class invalid_syntax">invalid_syntax</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../multiple_occurrences.html" title="Class multiple_occurrences">multiple_occurrences</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../multiple_values.html" title="Class multiple_values">multiple_values</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../id766036.html" title="Class too_few_positional_options_error">too_few_positional_options_error</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../id977493.html" title="Class too_many_positional_options_error">too_many_positional_options_error</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../unknown_option.html" title="Class unknown_option">unknown_option</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../validation_error.html" title="Class validation_error">validation_error</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id864937"></a>Header &lt;<a href="../../../boost/program_options/option.hpp" target="_top">boost/program_options/option.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../basic_option.html" title="Class template basic_option">basic_option</a>;
+
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_option.html" title="Class template basic_option">basic_option</a>&lt; <span class="bold"><strong>char</strong></span> &gt; option;
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_option.html" title="Class template basic_option">basic_option</a>&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; woption;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id835103"></a>Header &lt;<a href="../../../boost/program_options/options_description.hpp" target="_top">boost/program_options/options_description.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>class</strong></span> <a href="../duplicate_option_error.html" title="Class duplicate_option_error">duplicate_option_error</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../option_description.html" title="Class option_description">option_description</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../id1104430.html" title="Class options_description_easy_init">options_description_easy_init</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id730253"></a>Header &lt;<a href="../../../boost/program_options/parsers.hpp" target="_top">boost/program_options/parsers.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id1002952-bb.html" title="Class basic_parsed_options&lt;wchar_t&gt;">basic_parsed_options</a>&lt;<span class="bold"><strong>wchar_t</strong></span>&gt;;
+
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>char</strong></span> &gt; parsed_options;
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; wparsed_options;
+    <span class="bold"><strong>typedef</strong></span> function1&lt; std::pair&lt; std::string, std::string &gt;, <span class="bold"><strong>const</strong></span> std::string &amp; &gt; ext_parser;
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a>&lt; <span class="bold"><strong>char</strong></span> &gt; command_line_parser;
+    <span class="bold"><strong>typedef</strong></span> <a href="../basic_command_line_parser.html" title="Class template basic_command_line_parser">basic_command_line_parser</a>&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; wcommand_line_parser;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type"><a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span>
+      <a href="../parse_command_line.html" title="Function template parse_command_line">parse_command_line</a>(<span class="bold"><strong>int</strong></span>, charT *, <span class="bold"><strong>const</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a> &amp;, <span class="bold"><strong>int</strong></span> = 0,
+                         function1&lt; std::pair&lt; std::string, std::string &gt;, <span class="bold"><strong>const</strong></span> std::string &amp; &gt; = ext_parser());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+      <span class="type">BOOST_PROGRAM_OPTIONS_DECL <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; charT &gt;</span>
+      <a href="../parse_config_file.html" title="Function template parse_config_file">parse_config_file</a>(std::basic_istream&lt; charT &gt; &amp;,
+                        <span class="bold"><strong>const</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a> &amp;);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+    <a href="../id1010247.html" title="Function parse_environment">parse_environment</a>(<span class="bold"><strong>const</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a> &amp;,
+                      <span class="bold"><strong>const</strong></span> function1&lt; std::string, std::string &gt; &amp;);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+    <a href="../id1045724.html" title="Function parse_environment">parse_environment</a>(<span class="bold"><strong>const</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a> &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL parsed_options</span>
+    <a href="../id1045724.html" title="Function parse_environment">parse_environment</a>(<span class="bold"><strong>const</strong></span> <a href="../options_description.html" title="Class options_description">options_description</a> &amp;, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1010451"></a>Header &lt;<a href="../../../boost/program_options/positional_options.hpp" target="_top">boost/program_options/positional_options.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>class</strong></span> <a href="../id683292.html" title="Class positional_options_description">positional_options_description</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id857530"></a>Header &lt;<a href="../../../boost/program_options/value_semantic.hpp" target="_top">boost/program_options/value_semantic.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt; <span class="bold"><strong>class</strong></span> <a href="../typed_value.html" title="Class template typed_value">typed_value</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../untyped_value.html" title="Class untyped_value">untyped_value</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../value_semantic.html" title="Class value_semantic">value_semantic</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt; <span class="bold"><strong>class</strong></span> <a href="../id1140631.html" title="Class template value_semantic_codecvt_helper">value_semantic_codecvt_helper</a>;
+
+    <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id865547-bb.html" title="Class value_semantic_codecvt_helper&lt;char&gt;">value_semantic_codecvt_helper</a>&lt;<span class="bold"><strong>char</strong></span>&gt;;
+    <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id1142955-bb.html" title="Class value_semantic_codecvt_helper&lt;wchar_t&gt;">value_semantic_codecvt_helper</a>&lt;<span class="bold"><strong>wchar_t</strong></span>&gt;;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; T &gt; *</span> <a href="../value.html" title="Function value">value</a>();
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; T &gt; *</span> <a href="../value.html" title="Function value">value</a>(T *);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; T, <span class="bold"><strong>wchar_t</strong></span> &gt; *</span> <a href="../wvalue.html" title="Function wvalue">wvalue</a>();
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; T, <span class="bold"><strong>wchar_t</strong></span> &gt; *</span> <a href="../wvalue.html" title="Function wvalue">wvalue</a>(T *);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL <a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; <span class="bold"><strong>bool</strong></span> &gt; *</span> <a href="../bool_switch.html" title="Function bool_switch">bool_switch</a>();
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL <a href="../typed_value.html" title="Class template typed_value">typed_value</a>&lt; <span class="bold"><strong>bool</strong></span> &gt; *</span> <a href="../bool_switch.html" title="Function bool_switch">bool_switch</a>(<span class="bold"><strong>bool</strong></span> *);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id872805"></a>Header &lt;<a href="../../../boost/program_options/variables_map.hpp" target="_top">boost/program_options/variables_map.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> program_options {
+    <span class="bold"><strong>class</strong></span> <a href="../abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../variable_value.html" title="Class variable_value">variable_value</a>;
+    <span class="bold"><strong>class</strong></span> <a href="../variables_map.html" title="Class variables_map">variables_map</a>;
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span>
+    <a href="../id1108211.html" title="Function store">store</a>(<span class="bold"><strong>const</strong></span> <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>char</strong></span> &gt; &amp;, <a href="../variables_map.html" title="Class variables_map">variables_map</a> &amp;, <span class="bold"><strong>bool</strong></span> = false);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span>
+    <a href="../id837802.html" title="Function store">store</a>(<span class="bold"><strong>const</strong></span> <a href="../basic_parsed_options.html" title="Class template basic_parsed_options">basic_parsed_options</a>&lt; <span class="bold"><strong>wchar_t</strong></span> &gt; &amp;, <a href="../variables_map.html" title="Class variables_map">variables_map</a> &amp;);
+    <span class="type">BOOST_PROGRAM_OPTIONS_DECL <span class="bold"><strong>void</strong></span></span> <a href="../notify.html" title="Function notify">notify</a>(<a href="../variables_map.html" title="Class variables_map">variables_map</a> &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id833980"></a>Header &lt;<a href="../../../boost/program_options/version.hpp" target="_top">boost/program_options/version.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis">
+
+<a href="../id833986.html" title="Macro BOOST_PROGRAM_OPTIONS_VERSION">BOOST_PROGRAM_OPTIONS_VERSION</a></pre>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="../id801451.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options/s06.html b/doc/html/program_options/s06.html
new file mode 100644
index 0000000000..56d1cfb605
--- /dev/null
+++ b/doc/html/program_options/s06.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="design.html" title="Design Discussion">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="reference.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="id1248689"></a>Acknowledgements</h3></div></div></div>
+<p>I'm very gratefull to all the people who helped with the development,
+ by discussion, fixes, and as users. It was pleasant
+ to see all that involvement, which made the library much better than it
+ would be otherwise.
+ </p>
+<p>In the early stages, the library was affected by discussions with
+ Gennadiy Rozental, William Kempf and Alexander Okhotin.
+ </p>
+<p>Hartmut Kaiser was the first person to try the library on his project
+ and send a number of suggestions and fixes.
+ </p>
+<p>The formal review lead to numerous comments and enhancements. Pavol
+ Droba helped with the option description semantic. Gennadiy Rozental has
+ criticised many aspects of the library which caused various simplifications.
+ Pavel Vozenilek did carefull review of the implementation. A number of
+ comments were made by:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>David Abrahams</p></li>
+<li><p>Neal D. Becker</p></li>
+<li><p>Misha Bergal</p></li>
+<li><p>James Curran</p></li>
+<li><p>Carl Daniel</p></li>
+<li><p>Beman Dawes</p></li>
+<li><p>Tanton Gibbs</p></li>
+<li><p>Holger Grund</p></li>
+<li><p>Hartmut Kaiser</p></li>
+<li><p>Petr Kocmid</p></li>
+<li><p>Baptiste Lepilleur</p></li>
+<li><p>Marcelo E. Magallon</p></li>
+<li><p>Chuck Messenger</p></li>
+<li><p>John Torjo</p></li>
+<li><p>Matthias Troyer</p></li>
+</ul></div>
+<p>Doug Gregor and Reece Dunn helped to resolve the issues with Boostbook
+ version of the documentation.
+ </p>
+<p>Even after review, a number of people have helped with further development:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Rob Lievaart</p></li>
+<li><p>Thorsten Ottosen</p></li>
+<li><p>Joseph Wu</p></li>
+<li><p>Ferdinand Prantl</p></li>
+<li><p>Miro Jurisic</p></li>
+<li><p>John Maddock</p></li>
+<li><p>Janusz Piwowarski</p></li>
+<li><p>Charles Brockman</p></li>
+<li><p>Jonathan Wakely</p></li>
+</ul></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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/program_options/tutorial.html b/doc/html/program_options/tutorial.html
new file mode 100644
index 0000000000..b5d8599612
--- /dev/null
+++ b/doc/html/program_options/tutorial.html
@@ -0,0 +1,339 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="prev" href="../program_options.html" title="Chapter 7. Boost.Program_options">
+<link rel="next" href="overview.html" title="Library Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../program_options.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="overview.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="program_options.tutorial"></a>Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1246788">Getting Started</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1246925">Option Details</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1247078">Multiple Sources</a></span></dt>
+</dl></div>
+<p>In this section, we'll take a look at the most common usage scenarios
+ of the program_options library, starting with the simplest one. The examples
+ show only the interesting code parts, but the complete programs can be found
+ in the "BOOST_ROOT/libs/program_options/example" directory. Through all the
+ examples, we'll assume that the following namespace alias is in effect:
+</p>
+<pre class="programlisting">namespace po = boost::program_options;</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1246788"></a>Getting Started</h4></div></div></div>
+<p>The first example is the simplest possible: it only handles two
+ options. Here's the source code (the full program is in
+ "example/first.cpp"):
+
+</p>
+<pre class="programlisting">
+// Declare the supported options.
+po::options_description desc("Allowed options");
+desc.add_options()
+ ("help", "produce help message")
+ ("compression", po::value&lt;int&gt;(), "set compression level")
+;
+
+po::variables_map vm;
+po::store(po::parse_command_line(ac, av, desc), vm);
+po::notify(vm);
+
+if (vm.count("help")) {
+ cout &lt;&lt; desc &lt;&lt; "\n";
+ return 1;
+}
+
+if (vm.count("compression")) {
+ cout &lt;&lt; "Compression level was set to "
+ &lt;&lt; vm["compression"].as&lt;int&gt;() &lt;&lt; ".\n";
+} else {
+ cout &lt;&lt; "Compression level was not set.\n";
+}
+</pre>
+<p>We start by declaring all allowed options using the
+ class. The <code class="computeroutput">add_options</code> method of that
+ class returns a special proxy object that defines
+ <code class="computeroutput">operator()</code>. Calls to that operator actually declare
+ options. The parameters are option name, information about value, and option
+ description. In this example, the first option has no value, and the second
+ one has a value of type <code class="computeroutput">int</code>.
+ </p>
+<p>After that, an object of class <code class="computeroutput">variables_map</code> is
+ declared. That class is intended to store values of options, and can store
+ values of arbitrary types. Next, the calls to <code class="computeroutput">store</code>,
+ <code class="computeroutput">parse_command_line</code> and <code class="computeroutput">notify</code> functions cause
+ <code class="computeroutput">vm</code> to contain all the options found on the command
+ line.</p>
+<p>And now, finally, we can use the options as we like. The
+ <code class="computeroutput">variables_map</code> class can be used just like
+ <code class="computeroutput">std::map</code>, except that values stored there must be retrieved
+ with the <code class="computeroutput">as</code> method shown above. (If the type specified in the
+ call to the <code class="computeroutput">as</code> method is different from the actually stored
+ type, an exception is thrown.)
+ </p>
+<p>It's now a good time to try compiling the code yourself, but if
+ you're not yet ready, here's an example session:
+</p>
+<pre class="screen">
+$<strong class="userinput"><code>bin/gcc/debug/first</code></strong>
+Compression level was not set.
+$<strong class="userinput"><code>bin/gcc/debug/first --help</code></strong>
+Allowed options:
+ --help : produce help message
+ --compression arg : set compression level
+$<strong class="userinput"><code>bin/gcc/debug/first --compression 10</code></strong>
+Compression level was set to 10.
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1246925"></a>Option Details</h4></div></div></div>
+<p>An option value, surely, can have other types than <code class="computeroutput">int</code>, and
+ can have other interesting properties, which we'll discuss right now. The
+ complete version of the code snipped below can be found in
+ "example/options_description.cpp".</p>
+<p>Imagine we're writing a compiler. It should take the optimization
+ level, a number of include paths, and a number of input files, and perform some
+ interesting work. Let's describe the options:
+ </p>
+<pre class="programlisting">
+int opt;
+po::options_description desc("Allowed options");
+desc.add_options()
+ ("help", "produce help message")
+ ("optimization", po::value&lt;int&gt;(&amp;opt)-&gt;default_value(10),
+ "optimization level")
+ ("include-path,I", po::value&lt; vector&lt;string&gt; &gt;(),
+ "include path")
+ ("input-file", po::value&lt; vector&lt;string&gt; &gt;(), "input file")
+;
+</pre>
+<p>The "--help" option should be familiar from the previous example.
+ It's a good idea to have this option in all cases.</p>
+<p>The "optimization" option shows two new features. First, we specify
+ the address of the variable(<code class="computeroutput">&amp;opt</code>). After storing values, that
+ variable will have the value of the option. Second, we specify a default
+ value of 10, which will be used if no value is specified by the user.
+ </p>
+<p>The "include-path" option is an example of the only case where
+ the interface of the <code class="computeroutput">options_description</code> class serves only one
+ source -- the command line. Users typically like to use short option names
+ for common options, and the "include-path,I" name specifies that short
+ option name is "I". So, both "--include-path" and "-I" can be used.
+ </p>
+<p>The "input-file" option specifies the list of files to
+ process. That's okay for a start, but, of course, writing something like:
+ </p>
+<pre class="screen"><strong class="userinput"><code>compiler --input-file=a.cpp</code></strong></pre>
+<p>
+ is a little non-standard, compared with
+ </p>
+<pre class="screen"><strong class="userinput"><code>compiler a.cpp</code></strong></pre>
+<p>
+ We'll address this in a moment.
+ </p>
+<p>
+ The command line tokens which have no option name, as above, are
+ called "positional options" by this library. They can be handled
+ too. With a little help from the user, the library can decide that "a.cpp"
+ really means the same as "--input-file=a.cpp". Here's the additional code
+ we need:
+ </p>
+<pre class="programlisting">
+po::positional_options_description p;
+p.add("input-file", -1);
+
+po::variables_map vm;
+po::store(po::command_line_parser(ac, av).
+ options(desc).positional(p).run(), vm);
+po::notify(vm);
+ </pre>
+<p>
+ The first two lines say that all positional options should be translated
+ into "input-file" options. Also note that we use the
+ class to parse the command
+ line, not the
+ function. The latter is a convenient wrapper for simple cases, but now we
+ need to pass additional information.
+ </p>
+<p>By now, all options are described and parsed. We'll save ourselves the
+ trouble of implementing the rest of the compiler logic and only print the
+ options:
+ </p>
+<pre class="programlisting">
+if (vm.count("include-path"))
+{
+ cout &lt;&lt; "Include paths are: "
+ &lt;&lt; vm["include-path"].as&lt; vector&lt;string&gt; &gt;() &lt;&lt; "\n";
+}
+
+if (vm.count("input-file"))
+{
+ cout &lt;&lt; "Input files are: "
+ &lt;&lt; vm["input-file"].as&lt; vector&lt;string&gt; &gt;() &lt;&lt; "\n";
+}
+
+cout &lt;&lt; "Optimization level is " &lt;&lt; opt &lt;&lt; "\n";
+</pre>
+<p>Here's an example session:
+ </p>
+<pre class="screen">
+$<strong class="userinput"><code>bin/gcc/debug/options_description --help</code></strong>
+Usage: options_description [options]
+Allowed options:
+ --help : produce help message
+ --optimization arg : optimization level
+ -I [ --include-path ] arg : include path
+ --input-file arg : input file
+$bin/gcc/debug/options_description
+Optimization level is 10
+$<strong class="userinput"><code>bin/gcc/debug/options_description --optimization 4 -I foo a.cpp</code></strong>
+Include paths are: foo
+Input files are: a.cpp
+Optimization level is 4
+</pre>
+<p>
+ Oops, there's a slight problem. It's still possible to specify the
+ "--input-file" option, and usage message says so, which can be confusing
+ for the user. It would be nice to hide this information, but let's wait
+ for the next example.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1247078"></a>Multiple Sources</h4></div></div></div>
+<p>It's quite likely that specifying all options to our compiler on the
+ command line will annoy users. What if a user installs a new library and
+ wants to always pass an additional command line element? What if he has
+ made some choices which should be applied on every run? It's desirable to
+ create a config file with common settings which will be used together with
+ the command line.
+ </p>
+<p>Of course, there will be a need to combine the values from command
+ line and config file. For example, the optimization level specified on the
+ command line should override the value from the config file. On the other
+ hand, include paths should be combined.
+ </p>
+<p>Let's see the code now. The complete program is in
+ "examples/multiple_sources.cpp". The option definition has two interesting
+ details. First, we declare several instances of the
+ <code class="computeroutput">options_description</code> class. The reason is that, in general,
+ not all options are alike. Some options, like "input-file" above, should
+ not be presented in an automatic help message. Some options make sense only
+ in the config file. Finally, it's nice to have some structure in the help message,
+ not just a long list of options. Let's declare several option groups:
+ </p>
+<pre class="programlisting">
+// Declare a group of options that will be
+// allowed only on command line
+po::options_description generic("Generic options");
+generic.add_options()
+ ("version,v", "print version string")
+ ("help", "produce help message")
+ ;
+
+// Declare a group of options that will be
+// allowed both on command line and in
+// config file
+po::options_description config("Configuration");
+config.add_options()
+ ("optimization", po::value&lt;int&gt;(&amp;opt)-&gt;default_value(10),
+ "optimization level")
+ ("include-path,I",
+ po::value&lt; vector&lt;string&gt; &gt;()-&gt;composing(),
+ "include path")
+ ;
+
+// Hidden options, will be allowed both on command line and
+// in config file, but will not be shown to the user.
+po::options_description hidden("Hidden options");
+hidden.add_options()
+ ("input-file", po::value&lt; vector&lt;string&gt; &gt;(), "input file")
+ ;
+</pre>
+<p>
+ Note the call to the <code class="computeroutput">composing</code> method in the declaration of the
+ "include-path" option. It tells the library that values from different sources
+ should be composed together, as we'll see shortly.
+ </p>
+<p>
+ The <code class="computeroutput">add</code> method of the <code class="computeroutput">options_description</code>
+ class can be used to further group the options:
+ </p>
+<pre class="programlisting">
+po::options_description cmdline_options;
+cmdline_options.add(generic).add(config).add(hidden);
+
+po::options_description config_file_options;
+config_file_options.add(config).add(hidden);
+
+po::options_description visible("Allowed options");
+visible.add(generic).add(config);
+ </pre>
+<p>The parsing and storing of values follows the usual pattern, except that
+ we additionally call <code class="computeroutput">parse_config_file</code>, and
+ call the function twice. But what
+ happens if the same value is specified both on the command line and in
+ config file? Usually, the value stored first is preferred. This is what
+ happens for the "--optimization" option. For "composing" options, like
+ "include-file", the values are merged.
+ </p>
+<p>Here's an example session:
+</p>
+<pre class="screen">
+$<strong class="userinput"><code>bin/gcc/debug/multiple_sources</code></strong>
+Include paths are: /opt
+Optimization level is 1
+$<strong class="userinput"><code>bin/gcc/debug/multiple_sources --help</code></strong>
+Allows options:
+
+Generic options:
+ -v [ --version ] : print version string
+ --help : produce help message
+
+Configuration:
+ --optimization n : optimization level
+ -I [ --include-path ] path : include path
+
+$<strong class="userinput"><code>bin/gcc/debug/multiple_sources --optimization=4 -I foo a.cpp b.cpp</code></strong>
+Include paths are: foo /opt
+Input files are: a.cpp b.cpp
+Optimization level is 4
+</pre>
+<p>
+ The first invocation uses values from the configuration file. The second
+ invocation also uses values from command line. As we see, the include
+ paths on the command line and in the configuration file are merged,
+ while optimization is taken from the command line.
+ </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../program_options.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../program_options.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="overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ptime.html b/doc/html/ptime.html
new file mode 100644
index 0000000000..715b292ebb
--- /dev/null
+++ b/doc/html/ptime.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class ptime</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id861076" title="Header &lt;boost/date_time/posix_time/ptime.hpp&gt;">
+<link rel="prev" href="id905079.html" title="Function template operator&gt;&gt;">
+<link rel="next" href="duration_from_string.html" title="Function duration_from_string">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id905079.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id861076"><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="duration_from_string.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ptime"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class ptime</span></h2>
+<p>boost::posix_time::ptime &#8212; Time type with no timezone or other adjustments. </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"><strong>class</strong></span> ptime {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> posix_time_system                    time_system_type;  
+  <span class="bold"><strong>typedef</strong></span> time_system_type::time_rep_type      time_rep_type;     
+  <span class="bold"><strong>typedef</strong></span> time_system_type::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> <a href="ptime.html" title="Class ptime">ptime</a>                                time_type;         
+
+  <span class="emphasis"><em>// <a href="ptime.html#ptimeconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="ptime.html#id1002015-bb">ptime</a>(gregorian::date, time_duration_type);
+  <a href="ptime.html#id978196-bb">ptime</a>(gregorian::date);
+  <a href="ptime.html#id966661-bb">ptime</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;);
+  <a href="ptime.html#id797456-bb">ptime</a>(<span class="bold"><strong>const</strong></span> special_values);
+  <a href="ptime.html#id1034732-bb">ptime</a>();
+
+  <span class="emphasis"><em>// <a href="ptime.html#id1002010-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1178178"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1178181"></a><h3>
+<a name="ptimeconstruct-copy-destruct"></a><code class="computeroutput">ptime</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1002015-bb"></a>ptime(gregorian::date d, time_duration_type td);</pre></li>
+<li><pre class="literallayout"><a name="id978196-bb"></a>ptime(gregorian::date d);</pre></li>
+<li><pre class="literallayout"><a name="id966661-bb"></a>ptime(<span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs);</pre></li>
+<li><pre class="literallayout"><a name="id797456-bb"></a>ptime(<span class="bold"><strong>const</strong></span> special_values sv);</pre></li>
+<li><pre class="literallayout"><a name="id1034732-bb"></a>ptime();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1178281"></a><h3>
+<a name="id1002010-bb"></a><code class="computeroutput">ptime</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id905079.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id861076"><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="duration_from_string.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/range_finder.html b/doc/html/range_finder.html
new file mode 100644
index 0000000000..a6df57b501
--- /dev/null
+++ b/doc/html/range_finder.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function range_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="token_finder.html" title="Function template token_finder">
+<link rel="next" href="const_formatter.html" title="Function template const_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="token_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="const_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="range_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function range_finder</span></h2>
+<p>boost::algorithm::range_finder &#8212; "Range" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ForwardIteratorT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> range_finder(ForwardIteratorT Begin, ForwardIteratorT End);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ForwardIteratorT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> range_finder(iterator_range&lt; ForwardIteratorT &gt; Range);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325393"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">range_finder</code> . The finder does not perform any operation. It simply returns the given range for any input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Begin</span></dt>
+<dd><p>Beginning of the range </p></dd>
+<dt><span class="term">End</span></dt>
+<dd><p>End of the range </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">range_finger</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="token_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="const_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/read_write_mutex.html b/doc/html/read_write_mutex.html
new file mode 100644
index 0000000000..5d5a116bcf
--- /dev/null
+++ b/doc/html/read_write_mutex.html
@@ -0,0 +1,153 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class read_write_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id693680" title="Header &lt;boost/thread/read_write_mutex.hpp&gt;">
+<link rel="prev" href="id1149596.html" title="Type read_write_scheduling_policy">
+<link rel="next" href="try_read_write_mutex.html" title="Class try_read_write_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1149596.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="try_read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="read_write_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class read_write_mutex</span></h2>
+<p>boost::read_write_mutex &#8212; <p>The <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a> concept.</p></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"><strong>class</strong></span> read_write_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable, <span class="emphasis"><em>// Exposition only</em></span>
+                         <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_write_lock;
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_write_lock;     
+
+  <span class="emphasis"><em>// <a href="read_write_mutex.html#read_write_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="read_write_mutex.html#id685797-bb">read_write_mutex</a>(boost::read_write_scheduling_policy);
+  <a href="read_write_mutex.html#id1146611-bb">~read_write_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1561559"></a><h2>Description</h2>
+<p>The <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> and <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a>.</p>
+<p>The <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> class supplies the following typedefs,
+ which <a href="threads/concepts.html#threads.concepts.read-write-lock-models" title="Lock Models">model</a>
+ the specified locking strategies:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p>The <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.read-write-mutex-models" title="Mutex Models">read/write mutex models</a>
+ in , <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> has two types of
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies" title="Scheduling Policies">scheduling policies</a>, an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ between threads trying to obtain different types of locks and an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a>
+ between threads trying to obtain the same type of lock.
+ The <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> class allows the
+ programmer to choose what
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ will be used; however, like all read/write mutex models,
+ <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a> as
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Self-deadlock is virtually guaranteed if a thread tries to
+ lock the same <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> multiple times
+ unless all locks are read-locks (but see below)</div>
+<div class="refsect2" lang="en">
+<a name="id1561830"></a><h3>
+<a name="read_write_mutexconstruct-copy-destruct"></a><code class="computeroutput">read_write_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id685797-bb"></a>read_write_mutex(boost::read_write_scheduling_policy count);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1146611-bb"></a>~read_write_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1149596.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="try_read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/recursive_mutex.html b/doc/html/recursive_mutex.html
new file mode 100644
index 0000000000..92ff02f49a
--- /dev/null
+++ b/doc/html/recursive_mutex.html
@@ -0,0 +1,132 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class recursive_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1172185" title="Header &lt;boost/thread/recursive_mutex.hpp&gt;">
+<link rel="prev" href="call_once.html" title="Function call_once">
+<link rel="next" href="recursive_try_mutex.html" title="Class recursive_try_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="call_once.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="recursive_try_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="recursive_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class recursive_mutex</span></h2>
+<p>boost::recursive_mutex &#8212; <p>The <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> concept.</p></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"><strong>class</strong></span> recursive_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;
+
+  <span class="emphasis"><em>// <a href="recursive_mutex.html#recursive_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="recursive_mutex.html#id1255710-bb">recursive_mutex</a>();
+  <a href="recursive_mutex.html#id901662-bb">~recursive_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1560090"></a><h2>Description</h2>
+<p>The <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> and <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics, see <a href="mutex.html" title="Class mutex">mutex</a>,
+ <a href="try_mutex.html" title="Class try_mutex">try_mutex</a>, and <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>.
+ </p>
+<p>The <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> class supplies the following typedef,
+ which models the specified locking strategy:
+
+ </p>
+<div class="table">
+<a name="id1560181"></a><p class="title"><b>Table 12.23. Supported Lock Types</b></p>
+<table class="table" summary="Supported Lock Types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody><tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr></tbody>
+</table>
+</div>
+<p>The <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> class uses a
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking strategy, so attempts to recursively lock a
+ <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object
+ succeed and an internal "lock count" is maintained.
+ Attempts to unlock a <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object
+ by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1560285"></a><h3>
+<a name="recursive_mutexconstruct-copy-destruct"></a><code class="computeroutput">recursive_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1255710-bb"></a>recursive_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id901662-bb"></a>~recursive_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="call_once.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="recursive_try_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/recursive_timed_mutex.html b/doc/html/recursive_timed_mutex.html
new file mode 100644
index 0000000000..d269179817
--- /dev/null
+++ b/doc/html/recursive_timed_mutex.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class recursive_timed_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1172185" title="Header &lt;boost/thread/recursive_mutex.hpp&gt;">
+<link rel="prev" href="recursive_try_mutex.html" title="Class recursive_try_mutex">
+<link rel="next" href="id1149596.html" title="Type read_write_scheduling_policy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_try_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="id1149596.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="recursive_timed_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class recursive_timed_mutex</span></h2>
+<p>boost::recursive_timed_mutex &#8212; <p>The <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> concept.</p></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"><strong>class</strong></span> recursive_timed_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_lock;  
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_timed_lock;
+
+  <span class="emphasis"><em>// <a href="recursive_timed_mutex.html#recursive_timed_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="recursive_timed_mutex.html#id1106070-bb">recursive_timed_mutex</a>();
+  <a href="recursive_timed_mutex.html#id1005769-bb">~recursive_timed_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1560957"></a><h2>Description</h2>
+<p>The <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> and <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics, see <a href="mutex.html" title="Class mutex">mutex</a>,
+ <a href="try_mutex.html" title="Class try_mutex">try_mutex</a>, and <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>.
+ </p>
+<p>The <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> class supplies the following typedefs,
+ which model the specified locking strategies:
+
+ </p>
+<div class="table">
+<a name="id1561049"></a><p class="title"><b>Table 12.25. Supported Lock Types</b></p>
+<table class="table" summary="Supported Lock Types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_timed_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a></td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>The <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> class uses a
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking strategy, so attempts to recursively lock a
+ <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> object
+ succeed and an internal "lock count" is maintained.
+ Attempts to unlock a <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object
+ by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1561177"></a><h3>
+<a name="recursive_timed_mutexconstruct-copy-destruct"></a><code class="computeroutput">recursive_timed_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1106070-bb"></a>recursive_timed_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1005769-bb"></a>~recursive_timed_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_try_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="id1149596.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/recursive_try_mutex.html b/doc/html/recursive_try_mutex.html
new file mode 100644
index 0000000000..146b4d734d
--- /dev/null
+++ b/doc/html/recursive_try_mutex.html
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class recursive_try_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1172185" title="Header &lt;boost/thread/recursive_mutex.hpp&gt;">
+<link rel="prev" href="recursive_mutex.html" title="Class recursive_mutex">
+<link rel="next" href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="recursive_timed_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="recursive_try_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class recursive_try_mutex</span></h2>
+<p>boost::recursive_try_mutex &#8212; <p>The <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> concept.</p></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"><strong>class</strong></span> recursive_try_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;    
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_lock;
+
+  <span class="emphasis"><em>// <a href="recursive_try_mutex.html#recursive_try_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="recursive_try_mutex.html#id869154-bb">recursive_try_mutex</a>();
+  <a href="recursive_try_mutex.html#id764956-bb">~recursive_try_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1560510"></a><h2>Description</h2>
+<p>The <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> and <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics, see <a href="mutex.html" title="Class mutex">mutex</a>,
+ <a href="try_mutex.html" title="Class try_mutex">try_mutex</a>, and <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>.
+ </p>
+<p>The <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> class supplies the following typedefs,
+ which model the specified locking strategies:
+
+ </p>
+<div class="table">
+<a name="id1560602"></a><p class="title"><b>Table 12.24. Supported Lock Types</b></p>
+<table class="table" summary="Supported Lock Types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>The <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> class uses a
+ <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking strategy, so attempts to recursively lock a
+ <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> object
+ succeed and an internal "lock count" is maintained.
+ Attempts to unlock a <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a> object
+ by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1560718"></a><h3>
+<a name="recursive_try_mutexconstruct-copy-destruct"></a><code class="computeroutput">recursive_try_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id869154-bb"></a>recursive_try_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id764956-bb"></a>~recursive_try_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="recursive_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1172185"><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="recursive_timed_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/recursive_wrapper.html b/doc/html/recursive_wrapper.html
new file mode 100644
index 0000000000..8f63d3260f
--- /dev/null
+++ b/doc/html/recursive_wrapper.html
@@ -0,0 +1,196 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template recursive_wrapper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1311990" title="Header &lt;boost/variant/recursive_wrapper.hpp&gt;">
+<link rel="prev" href="id1151195.html" title="Class template make_recursive_variant_over">
+<link rel="next" href="is_recursive_wrapper.html" title="Class template is_recursive_wrapper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1151195.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="is_recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="recursive_wrapper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template recursive_wrapper</span></h2>
+<p>boost::recursive_wrapper &#8212; Solves circular dependencies, enabling recursive types.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> recursive_wrapper {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T type;
+
+  <span class="emphasis"><em>// <a href="recursive_wrapper.html#recursive_wrapperconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="recursive_wrapper.html#id1556011-bb">recursive_wrapper</a>();
+  <a href="recursive_wrapper.html#id693637-bb">recursive_wrapper</a>(<span class="bold"><strong>const</strong></span> recursive_wrapper &amp;);
+  <a href="recursive_wrapper.html#id1275780-bb">recursive_wrapper</a>(<span class="bold"><strong>const</strong></span> T &amp;);
+  <a href="recursive_wrapper.html#id1255099-bb">~recursive_wrapper</a>();
+
+  <span class="emphasis"><em>// <a href="recursive_wrapper.html#id1066755-bb">modifiers</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="recursive_wrapper.html#id658437-bb">swap</a>(recursive_wrapper &amp;);
+  <span class="type">recursive_wrapper &amp;</span> <a href="recursive_wrapper.html#id1149334-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> recursive_wrapper &amp;);
+  <span class="type">recursive_wrapper &amp;</span> <a href="recursive_wrapper.html#id1569028-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> T &amp;);
+
+  <span class="emphasis"><em>// <a href="recursive_wrapper.html#id1223209-bb">queries</a></em></span>
+  <span class="type">T &amp;</span> <a href="recursive_wrapper.html#id1253302-bb">get</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> T &amp;</span> <a href="recursive_wrapper.html#id1242858-bb">get</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T *</span> <a href="recursive_wrapper.html#id1321318-bb">get_pointer</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> T *</span> <a href="recursive_wrapper.html#id1257972-bb">get_pointer</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1667174"></a><h2>Description</h2>
+<p>The <code class="computeroutput">recursive_wrapper</code> class template has an
+ interface similar to a simple value container, but its content is
+ allocated dynamically. This allows <code class="computeroutput">recursive_wrapper</code> to
+ hold types <code class="computeroutput">T</code> whose member data leads to a circular
+ dependency (e.g., a data member of <code class="computeroutput">T</code> has a data member
+ of type <code class="computeroutput">T</code>).</p>
+<p>The application of <code class="computeroutput">recursive_wrapper</code> is easiest
+ understood in context. See
+ <a href="variant/tutorial.html#variant.tutorial.recursive.recursive-wrapper" title="Recursive types with recursive_wrapper">the section called &#8220;Recursive types with <code class="computeroutput">recursive_wrapper</code>&#8221;</a> for a
+ demonstration of a common use of the class template.</p>
+<p><span class="bold"><strong>Notes</strong></span>:</p>
+<div class="itemizedlist"><ul type="disc"><li>Any type specified as the template argument to
+ <code class="computeroutput">recursive_wrapper</code> must be capable of construction via
+ <code class="computeroutput">operator new</code>. Thus, for instance, references are not
+ supported.</li></ul></div>
+<div class="refsect2" lang="en">
+<a name="id1667255"></a><h3>
+<a name="recursive_wrapperconstruct-copy-destruct"></a><code class="computeroutput">recursive_wrapper</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1556011-bb"></a>recursive_wrapper();</pre>
+<p>Initializes <code class="computeroutput">*this</code> by default construction of
+ <code class="computeroutput">T</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">T</code> must fulfill the requirements of the
+ <span class="emphasis"><em>DefaultConstructible</em></span> [20.1.4]
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the default
+ constructor of <code class="computeroutput">T</code> or, in the event of
+ insufficient memory, with <code class="computeroutput">std::bad_alloc</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id693637-bb"></a>recursive_wrapper(<span class="bold"><strong>const</strong></span> recursive_wrapper &amp; other);</pre>
+<p>Copies the content of <code class="computeroutput">other</code> into
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the
+ copy constructor of <code class="computeroutput">T</code> or, in the event of
+ insufficient memory, with <code class="computeroutput">std::bad_alloc</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1275780-bb"></a>recursive_wrapper(<span class="bold"><strong>const</strong></span> T &amp; operand);</pre>
+<p>Copies <code class="computeroutput">operand</code> into
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the
+ copy constructor of <code class="computeroutput">T</code> or, in the event of
+ insufficient memory, with <code class="computeroutput">std::bad_alloc</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1255099-bb"></a>~recursive_wrapper();</pre>
+<p>Deletes the content of <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1667489"></a><h3>
+<a name="id1066755-bb"></a><code class="computeroutput">recursive_wrapper</code> modifiers</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id658437-bb"></a>swap(recursive_wrapper &amp; other);</pre>
+<p>Exchanges contents of <code class="computeroutput">*this</code> and
+ <code class="computeroutput">other</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">recursive_wrapper &amp;</span> <a name="id1149334-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> recursive_wrapper &amp; rhs);</pre>
+<p>Assigns the content of <code class="computeroutput">rhs</code> to the content of
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">T</code> must fulfill the requirements of
+ the <a href="Assignable.html" title="Concept Assignable">Assignable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the assignment
+ operator of <code class="computeroutput">T</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">recursive_wrapper &amp;</span> <a name="id1569028-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> T &amp; rhs);</pre>
+<p>Assigns <code class="computeroutput">rhs</code> into the content of
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">T</code> must fulfill the requirements of the
+ <a href="Assignable.html" title="Concept Assignable">Assignable</a>
+ concept.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ May fail with any exceptions arising from the assignment
+ operator of <code class="computeroutput">T</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1667707"></a><h3>
+<a name="id1223209-bb"></a><code class="computeroutput">recursive_wrapper</code> queries</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id1223213-bb"></a></p>
+<pre class="literallayout"><span class="type">T &amp;</span> <a name="id1253302-bb"></a>get();
+<span class="type"><span class="bold"><strong>const</strong></span> T &amp;</span> <a name="id1242858-bb"></a>get() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a reference to the content of
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<p><a name="id1591097-bb"></a></p>
+<pre class="literallayout"><span class="type">T *</span> <a name="id1321318-bb"></a>get_pointer();
+<span class="type"><span class="bold"><strong>const</strong></span> T *</span> <a name="id1257972-bb"></a>get_pointer() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a pointer to the content of
+ <code class="computeroutput">*this</code>.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1151195.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="is_recursive_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ref.html b/doc/html/ref.html
index 00507697a8..8c09cf0e42 100644
--- a/doc/html/ref.html
+++ b/doc/html/ref.html
@@ -1,10 +1,113 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/ref.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/ref.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/ref.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 8. Boost.Ref</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="id833986.html" title="Macro BOOST_PROGRAM_OPTIONS_VERSION">
+<link rel="next" href="ref/reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id833986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="ref/reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="ref"></a>Chapter 8. Boost.Ref</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Jaakko</span> <span class="surname">Järvi</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Peter</span> <span class="surname">Dimov</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Douglas</span> <span class="surname">Gregor</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Dave</span> <span class="surname">Abrahams</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 1999, 2000 Jaakko Järvi</p></div>
+<div><p class="copyright">Copyright © 2001, 2002 Peter Dimov</p></div>
+<div><p class="copyright">Copyright © 2002 David Abrahams</p></div>
+<div><div class="legalnotice">
+<a name="id1278723"></a><p>Permission to copy, use, modify, sell and distribute this
+ software is granted provided this copyright notice appears in
+ all copies. This software is provided "as is" without express
+ or implied warranty, and with no claim as to its suitability for
+ any purpose.
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="ref.html#ref.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="ref/reference.html">Reference</a></span></dt>
+<dd><dl><dt><span class="section"><a href="ref/reference.html#header.boost.ref.hpp">Header &lt;boost/ref.hpp&gt;</a></span></dt></dl></dd>
+<dt><span class="section"><a href="ref/ack.html">Acknowledgements</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="ref.intro"></a>Introduction</h3></div></div></div>
+<p>The Ref library is a small library that is useful for passing
+ references to function templates (algorithms) that would usually
+ take copies of their arguments. It defines the class template
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">boost::reference_wrapper&lt;T&gt;</a></code>,
+ the two functions
+ <code class="computeroutput"><a href="reference_wrapper.html#id1071532">boost::ref</a></code> and
+ <code class="computeroutput"><a href="reference_wrapper.html#cref">boost::cref</a></code> that return
+ instances of <code class="computeroutput">boost::reference_wrapper&lt;T&gt;</code>, and the
+ two traits classes
+ <code class="computeroutput"><a href="is_reference_wrapper.html" title="Class template is_reference_wrapper">boost::is_reference_wrapper&lt;T&gt;</a></code>
+ and
+ <code class="computeroutput"><a href="unwrap_reference.html" title="Class template unwrap_reference">boost::unwrap_reference&lt;T&gt;</a></code>.</p>
+<p>The purpose of
+ <code class="computeroutput">boost::reference_wrapper&lt;T&gt;</code> is to
+ contain a reference to an object of type T. It is primarily used to
+ "feed" references to function templates (algorithms) that take their
+ parameter by value.</p>
+<p>To support this usage,
+ <code class="computeroutput">boost::reference_wrapper&lt;T&gt;</code> provides an implicit
+ conversion to <code class="computeroutput">T&amp;</code>. This usually allows the function
+ templates to work on references unmodified.</p>
+<p><code class="computeroutput">boost::reference_wrapper&lt;T&gt;</code> is
+ both CopyConstructible and Assignable (ordinary references are not
+ Assignable).</p>
+<p>The expression <code class="computeroutput">boost::ref(x)</code>
+ returns a
+ <code class="computeroutput">boost::reference_wrapper&lt;X&gt;(x)</code> where X
+ is the type of x. Similarly,
+ <code class="computeroutput">boost::cref(x)</code> returns a
+ <code class="computeroutput">boost::reference_wrapper&lt;X const&gt;(x)</code>.</p>
+<p>The expression
+ <code class="computeroutput">boost::is_reference_wrapper&lt;T&gt;::value</code>
+ is true if T is a <code class="computeroutput">reference_wrapper</code>, and
+ false otherwise.</p>
+<p>The type-expression
+ <code class="computeroutput">boost::unwrap_reference&lt;T&gt;::type</code> is T::type if T
+ is a <code class="computeroutput">reference_wrapper</code>, T otherwise.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 09, 2004 at 00:56:42 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id833986.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="ref/reference.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/ref/ack.html b/doc/html/ref/ack.html
new file mode 100644
index 0000000000..e8969c603e
--- /dev/null
+++ b/doc/html/ref/ack.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../ref.html" title="Chapter 8. Boost.Ref">
+<link rel="prev" href="../unwrap_reference.html" title="Class template unwrap_reference">
+<link rel="next" href="../signals.html" title="Chapter 9. Boost.Signals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../unwrap_reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.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="../signals.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="ref.ack"></a>Acknowledgements</h3></div></div></div>
+<p><code class="computeroutput"><a href="../reference_wrapper.html#id1071532">ref</a></code> and <code class="computeroutput"><a href="../reference_wrapper.html#cref">cref</a></code>
+ were originally part of the <a href="../../../libs/tuple/index.html" target="_top">Tuple</a> library
+ by Jaakko Järvi. They were "promoted to boost:: status" by
+ Peter Dimov because they are generally useful. Douglas Gregor and
+ Dave Abrahams contributed
+ <code class="computeroutput"><a href="../is_reference_wrapper.html" title="Class template is_reference_wrapper">is_reference_wrapper</a></code> and
+ <code class="computeroutput"><a href="../unwrap_reference.html" title="Class template unwrap_reference">unwrap_reference</a></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 © 1999, 2000 Jaakko Järvi<br>Copyright © 2001, 2002 Peter Dimov<br>Copyright © 2002 David Abrahams</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../unwrap_reference.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.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="../signals.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ref/reference.html b/doc/html/ref/reference.html
new file mode 100644
index 0000000000..705d755825
--- /dev/null
+++ b/doc/html/ref/reference.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../ref.html" title="Chapter 8. Boost.Ref">
+<link rel="prev" href="../ref.html" title="Chapter 8. Boost.Ref">
+<link rel="next" href="../reference_wrapper.html" title="Class template reference_wrapper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../ref.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.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="../reference_wrapper.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="ref.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#header.boost.ref.hpp">Header &lt;boost/ref.hpp&gt;</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.ref.hpp"></a>Header &lt;<a href="../../../boost/ref.hpp" target="_top">boost/ref.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>;
+  <span class="type">reference_wrapper&lt;T&gt;</span> <a href="../reference_wrapper.html#id1071532">ref</a>(T&amp;);
+  <span class="type">reference_wrapper&lt;T <span class="bold"><strong>const</strong></span>&gt;</span> <a href="../reference_wrapper.html#cref">cref</a>(T <span class="bold"><strong>const</strong></span>&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../is_reference_wrapper.html" title="Class template is_reference_wrapper">is_reference_wrapper</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../unwrap_reference.html" title="Class template unwrap_reference">unwrap_reference</a>;
+}</pre>
+</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 © 1999, 2000 Jaakko Järvi<br>Copyright © 2001, 2002 Peter Dimov<br>Copyright © 2002 David Abrahams</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../ref.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.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="../reference_wrapper.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/reference.html b/doc/html/reference.html
new file mode 100644
index 0000000000..f7c5029cc5
--- /dev/null
+++ b/doc/html/reference.html
@@ -0,0 +1,190 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 20. Reference</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="boostbook.html" title="Part II. The BoostBook Documentation Format">
+<link rel="prev" href="boostbook/together.html" title="Chapter 19. Bringing Together a BoostBook Document">
+<link rel="next" href="boostbook/dtd/class-specialization.html" title="
+ BoostBook element class-specialization">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook/together.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="boostbook.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="boostbook/dtd/class-specialization.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="reference"></a>Chapter 20. Reference</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl></dl>
+</div>
+<p>Elements:</p>
+<div class="itemizedlist"><ul type="disc" compact>
+<li><a href="boostbook/dtd/boostbook.html" title="
+ BoostBook element boostbook">Element <code class="sgmltag-element">boostbook</code> - Defines a BoostBook book</a></li>
+<li><a href="boostbook/dtd/class.html" title="
+ BoostBook element class">Element <code class="sgmltag-element">class</code> - Declares a class or class template</a></li>
+<li><a href="boostbook/dtd/class-specialization.html" title="
+ BoostBook element class-specialization">Element <code class="sgmltag-element">class-specialization</code> - A specialization (partial or full) of a class template</a></li>
+<li><a href="boostbook/dtd/code.html" title="
+ BoostBook element code">Element <code class="sgmltag-element">code</code> - Mimics the <code class="sgmltag-element">code</code> tag in HTML</a></li>
+<li><a href="boostbook/dtd/compile-fail-test.html" title="
+ BoostBook element compile-fail-test">Element <code class="sgmltag-element">compile-fail-test</code> - A testcase that should fail to compile</a></li>
+<li><a href="boostbook/dtd/compile-test.html" title="
+ BoostBook element compile-test">Element <code class="sgmltag-element">compile-test</code> - A testcase that should compile correctly</a></li>
+<li><a href="boostbook/dtd/complexity.html" title="
+ BoostBook element complexity">Element <code class="sgmltag-element">complexity</code> - The time/space/etc. complexity of a function</a></li>
+<li><a href="boostbook/dtd/constructor.html" title="
+ BoostBook element constructor">Element <code class="sgmltag-element">constructor</code> - Declares a constructor of the enclosing class</a></li>
+<li><a href="boostbook/dtd/copy-assignment.html" title="
+ BoostBook element copy-assignment">Element <code class="sgmltag-element">copy-assignment</code> - Declares a copy-assignment operator</a></li>
+<li><a href="boostbook/dtd/data-member.html" title="
+ BoostBook element data-member">Element <code class="sgmltag-element">data-member</code> - Declares a data member of a class</a></li>
+<li><a href="boostbook/dtd/default.html" title="
+ BoostBook element default">Element <code class="sgmltag-element">default</code> - The default value of a function or template parameter</a></li>
+<li><a href="boostbook/dtd/description.html" title="
+ BoostBook element description">Element <code class="sgmltag-element">description</code> - Detailed description of a construct</a></li>
+<li><a href="boostbook/dtd/destructor.html" title="
+ BoostBook element destructor">Element <code class="sgmltag-element">destructor</code> - Declares a destructor for the enclosing class</a></li>
+<li><a href="boostbook/dtd/effects.html" title="
+ BoostBook element effects">Element <code class="sgmltag-element">effects</code> - Declares the side effects of a function</a></li>
+<li><a href="boostbook/dtd/enum.html" title="
+ BoostBook element enum">Element <code class="sgmltag-element">enum</code> - Declares an enumeration type</a></li>
+<li><a href="boostbook/dtd/enumvalue.html" title="
+ BoostBook element enumvalue">Element <code class="sgmltag-element">enumvalue</code> - A single value of an enumeration</a></li>
+<li><a href="boostbook/dtd/free-function-group.html" title="
+ BoostBook element free-function-group">Element <code class="sgmltag-element">free-function-group</code> - A set of functions that are grouped together under one name</a></li>
+<li><a href="boostbook/dtd/function.html" title="
+ BoostBook element function">Element <code class="sgmltag-element">function</code> - Declares a function</a></li>
+<li><a href="boostbook/dtd/functionname.html" title="
+ BoostBook element functionname">Element <code class="sgmltag-element">functionname</code> - References a function with the given name</a></li>
+<li><a href="boostbook/dtd/header.html" title="
+ BoostBook element header">Element <code class="sgmltag-element">header</code> - Declares a C++ header with the given name</a></li>
+<li><a href="boostbook/dtd/if-fails.html" title="
+ BoostBook element if-fails">Element <code class="sgmltag-element">if-fails</code> - What it means when a testcase fails</a></li>
+<li><a href="boostbook/dtd/inherit.html" title="
+ BoostBook element inherit">Element <code class="sgmltag-element">inherit</code> - Declares a base class of the enclosing class or struct</a></li>
+<li><a href="boostbook/dtd/lib.html" title="
+ BoostBook element lib">Element <code class="sgmltag-element">lib</code> - A library dependency</a></li>
+<li><a href="boostbook/dtd/library.html" title="
+ BoostBook element library">Element <code class="sgmltag-element">library</code> - Top-level element for a library</a></li>
+<li><a href="boostbook/dtd/library-reference.html" title="
+ BoostBook element library-reference">Element <code class="sgmltag-element">library-reference</code> - Declares the reference material for a library</a></li>
+<li><a href="boostbook/dtd/librarycategory.html" title="
+ BoostBook element librarycategory">Element <code class="sgmltag-element">librarycategory</code> - Declares that the enclosing library is in this category</a></li>
+<li><a href="boostbook/dtd/librarycategorydef.html" title="
+ BoostBook element librarycategorydef">Element <code class="sgmltag-element">librarycategorydef</code> - Defines a new library category</a></li>
+<li><a href="boostbook/dtd/librarycategorylist.html" title="
+ BoostBook element librarycategorylist">Element <code class="sgmltag-element">librarycategorylist</code> - Categorized listing of libraries</a></li>
+<li><a href="boostbook/dtd/libraryinfo.html" title="
+ BoostBook element libraryinfo">Element <code class="sgmltag-element">libraryinfo</code> - Provides information about a library</a></li>
+<li><a href="boostbook/dtd/librarylist.html" title="
+ BoostBook element librarylist">Element <code class="sgmltag-element">librarylist</code> - Placeholder for an alphabetical list of libraries</a></li>
+<li><a href="boostbook/dtd/libraryname.html" title="
+ BoostBook element libraryname">Element <code class="sgmltag-element">libraryname</code> - References a library of the given name</a></li>
+<li><a href="boostbook/dtd/librarypurpose.html" title="
+ BoostBook element librarypurpose">Element <code class="sgmltag-element">librarypurpose</code> - Describes in one short sentence or phrase the purpose of a library</a></li>
+<li><a href="boostbook/dtd/link-fail-test.html" title="
+ BoostBook element link-fail-test">Element <code class="sgmltag-element">link-fail-test</code> - Declares a test that should compile but fail to link</a></li>
+<li><a href="boostbook/dtd/link-test.html" title="
+ BoostBook element link-test">Element <code class="sgmltag-element">link-test</code> - Declares a test that should compile and link</a></li>
+<li><a href="boostbook/dtd/method.html" title="
+ BoostBook element method">Element <code class="sgmltag-element">method</code> - Declares a method, i.e., a member function</a></li>
+<li><a href="boostbook/dtd/method-group.html" title="
+ BoostBook element method-group">Element <code class="sgmltag-element">method-group</code> - A set of methods that are grouped together under one name</a></li>
+<li><a href="boostbook/dtd/namespace.html" title="
+ BoostBook element namespace">Element <code class="sgmltag-element">namespace</code> - Declares a namespace</a></li>
+<li><a href="boostbook/dtd/notes.html" title="
+ BoostBook element notes">Element <code class="sgmltag-element">notes</code> - Non-normative notes about a function's semantics</a></li>
+<li><a href="boostbook/dtd/overloaded-function.html" title="
+ BoostBook element overloaded-function">Element <code class="sgmltag-element">overloaded-function</code> - An overloaded function</a></li>
+<li><a href="boostbook/dtd/overloaded-method.html" title="
+ BoostBook element overloaded-method">Element <code class="sgmltag-element">overloaded-method</code> - An overloaded method</a></li>
+<li><a href="boostbook/dtd/parameter.html" title="
+ BoostBook element parameter">Element <code class="sgmltag-element">parameter</code> - A function parameter</a></li>
+<li><a href="boostbook/dtd/paramtype.html" title="
+ BoostBook element paramtype">Element <code class="sgmltag-element">paramtype</code> - The type of a function parameter</a></li>
+<li><a href="boostbook/dtd/postconditions.html" title="
+ BoostBook element postconditions">Element <code class="sgmltag-element">postconditions</code> - Conditions that must hold after the function returns</a></li>
+<li><a href="boostbook/dtd/precondition.html" title="
+ BoostBook element precondition">Element <code class="sgmltag-element">precondition</code> - Conditions that must be met prior to executing a function</a></li>
+<li><a href="boostbook/dtd/programlisting.html" title="
+ BoostBook element programlisting">Element <code class="sgmltag-element">programlisting</code> - A sample of program code</a></li>
+<li><a href="boostbook/dtd/purpose.html" title="
+ BoostBook element purpose">Element <code class="sgmltag-element">purpose</code> - A short description of an entity's use</a></li>
+<li><a href="boostbook/dtd/rationale.html" title="
+ BoostBook element rationale">Element <code class="sgmltag-element">rationale</code> - Describes the rationale for a particular function's design</a></li>
+<li><a href="boostbook/dtd/requirement.html" title="
+ BoostBook element requirement">Element <code class="sgmltag-element">requirement</code> - A requirement/property in the Jamfile for a testcase</a></li>
+<li><a href="boostbook/dtd/requires.html" title="
+ BoostBook element requires">Element <code class="sgmltag-element">requires</code> - Declares the requirements of a function</a></li>
+<li><a href="boostbook/dtd/returns.html" title="
+ BoostBook element returns">Element <code class="sgmltag-element">returns</code> - Description of the return value of a function</a></li>
+<li><a href="boostbook/dtd/run-fail-test.html" title="
+ BoostBook element run-fail-test">Element <code class="sgmltag-element">run-fail-test</code> - A testcase that should compile and link, but fail on execution</a></li>
+<li><a href="boostbook/dtd/run-test.html" title="
+ BoostBook element run-test">Element <code class="sgmltag-element">run-test</code> - A testcase that should compile, link, and execute</a></li>
+<li><a href="boostbook/dtd/signature.html" title="
+ BoostBook element signature">Element <code class="sgmltag-element">signature</code> - One signature of an overloaded function or method</a></li>
+<li><a href="boostbook/dtd/snippet.html" title="
+ BoostBook element snippet">Element <code class="sgmltag-element">snippet</code> - Pulls in a code snippet from a <code class="sgmltag-element">programlisting</code> element</a></li>
+<li><a href="boostbook/dtd/source.html" title="
+ BoostBook element source">Element <code class="sgmltag-element">source</code> - Defines source code for a test</a></li>
+<li><a href="boostbook/dtd/specialization.html" title="
+ BoostBook element specialization">Element <code class="sgmltag-element">specialization</code> - Defines the specialization arguments for a class specialization</a></li>
+<li><a href="boostbook/dtd/static-constant.html" title="
+ BoostBook element static-constant">Element <code class="sgmltag-element">static-constant</code> - Declares a static constant, e.g., <code class="computeroutput">const int foo = 5;</code>.</a></li>
+<li><a href="boostbook/dtd/struct.html" title="
+ BoostBook element struct">Element <code class="sgmltag-element">struct</code> - Declares a C++ struct</a></li>
+<li><a href="boostbook/dtd/struct-specialization.html" title="
+ BoostBook element struct-specialization">Element <code class="sgmltag-element">struct-specialization</code> - A specialization (full or partial) of a struct template</a></li>
+<li><a href="boostbook/dtd/template.html" title="
+ BoostBook element template">Element <code class="sgmltag-element">template</code> - Declares the template parameters of a class or function</a></li>
+<li><a href="boostbook/dtd/template-arg.html" title="
+ BoostBook element template-arg">Element <code class="sgmltag-element">template-arg</code> - A template argument in a specialization</a></li>
+<li><a href="boostbook/dtd/template-nontype-parameter.html" title="
+ BoostBook element template-nontype-parameter">Element <code class="sgmltag-element">template-nontype-parameter</code> - A nontype template parameter</a></li>
+<li><a href="boostbook/dtd/template-type-parameter.html" title="
+ BoostBook element template-type-parameter">Element <code class="sgmltag-element">template-type-parameter</code> - Declares a template type parameter</a></li>
+<li><a href="boostbook/dtd/template-varargs.html" title="
+ BoostBook element template-varargs">Element <code class="sgmltag-element">template-varargs</code> - Declares a variable-length list of template parameters</a></li>
+<li><a href="boostbook/dtd/testsuite.html" title="
+ BoostBook element testsuite">Element <code class="sgmltag-element">testsuite</code> - Describes a library testsuite</a></li>
+<li><a href="boostbook/dtd/throws.html" title="
+ BoostBook element throws">Element <code class="sgmltag-element">throws</code> - Description of the exceptions thrown by a function</a></li>
+<li><a href="boostbook/dtd/type.html" title="
+ BoostBook element type">Element <code class="sgmltag-element">type</code> - The type of an element or return type of a function</a></li>
+<li><a href="boostbook/dtd/typedef.html" title="
+ BoostBook element typedef">Element <code class="sgmltag-element">typedef</code> - Declares a typedef</a></li>
+<li><a href="boostbook/dtd/union.html" title="
+ BoostBook element union">Element <code class="sgmltag-element">union</code> - Declares a C++ union or union template</a></li>
+<li><a href="boostbook/dtd/union-specialization.html" title="
+ BoostBook element union-specialization">Element <code class="sgmltag-element">union-specialization</code> - A specialization (full or partial) of a union template</a></li>
+<li><a href="boostbook/dtd/using-class.html" title="
+ BoostBook element using-class">Element <code class="sgmltag-element">using-class</code> - Injects the method and function names of a class into the local scope</a></li>
+<li><a href="boostbook/dtd/using-namespace.html" title="
+ BoostBook element using-namespace">Element <code class="sgmltag-element">using-namespace</code> - Injects the declared names from a namespace into the local scope</a></li>
+</ul></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 © 2003-2005 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boostbook/together.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="boostbook.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="boostbook/dtd/class-specialization.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/reference_wrapper.html b/doc/html/reference_wrapper.html
new file mode 100644
index 0000000000..6c903f6a2b
--- /dev/null
+++ b/doc/html/reference_wrapper.html
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reference_wrapper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="ref/reference.html#header.boost.ref.hpp" title="Header &lt;boost/ref.hpp&gt;">
+<link rel="prev" href="ref/reference.html" title="Reference">
+<link rel="next" href="is_reference_wrapper.html" title="Class template is_reference_wrapper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ref/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="is_reference_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="reference_wrapper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reference_wrapper</span></h2>
+<p>boost::reference_wrapper &#8212;
+ Contains a reference to an object of type
+ <code class="computeroutput">T</code>.
+ </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> reference_wrapper {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> T type;
+
+  <span class="emphasis"><em>// <a href="reference_wrapper.html#reference_wrapperconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <span class="bold"><strong>explicit</strong></span> <a href="reference_wrapper.html#id1137126-bb">reference_wrapper</a>(T&amp;);
+
+  <span class="emphasis"><em>// <a href="reference_wrapper.html#id833081-bb">access</a></em></span>
+  <a href="reference_wrapper.html#id1105886-bb"><span class="bold"><strong>operator</strong></span> T&amp;</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T&amp;</span> <a href="reference_wrapper.html#id860312-bb">get</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T*</span> <a href="reference_wrapper.html#id656887-bb">get_pointer</a>() <span class="bold"><strong>const</strong></span>;
+};
+
+<span class="emphasis"><em>// <a href="reference_wrapper.html#id996937-bb">constructors</a></em></span>
+<span class="type">reference_wrapper&lt;T&gt;</span> <a href="reference_wrapper.html#id1071532">ref</a>(T&amp;);
+<span class="type">reference_wrapper&lt;T <span class="bold"><strong>const</strong></span>&gt;</span> <a href="reference_wrapper.html#cref">cref</a>(T <span class="bold"><strong>const</strong></span>&amp;);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1279242"></a><h2>Description</h2>
+<p><code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>
+ is primarily used to "feed" references to function templates
+ (algorithms) that take their parameter by value. It provides
+ an implicit conversion to
+ <code class="computeroutput">T&amp;</code>, which usually allows
+ the function templates to work on references
+ unmodified.</p>
+<div class="refsect2" lang="en">
+<a name="id1279267"></a><h3>
+<a name="reference_wrapperconstruct-copy-destruct"></a><code class="computeroutput">reference_wrapper</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>explicit</strong></span> <a name="id1137126-bb"></a>reference_wrapper(T&amp; t);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>
+ object that stores a reference to
+ <code class="computeroutput">t</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1279341"></a><h3>
+<a name="id833081-bb"></a><code class="computeroutput">reference_wrapper</code> access</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1105886-bb"></a><span class="bold"><strong>operator</strong></span> T&amp;() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The stored reference.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T&amp;</span> <a name="id860312-bb"></a>get() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The stored reference.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id656887-bb"></a>get_pointer() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A pointer to the object referenced by the stored reference.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1279480"></a><h3>
+<a name="id996937-bb"></a><code class="computeroutput">reference_wrapper</code> constructors</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">reference_wrapper&lt;T&gt;</span> <a name="id1071532"></a>ref(T&amp; t);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;T&gt;(t)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">reference_wrapper&lt;T <span class="bold"><strong>const</strong></span>&gt;</span> <a name="cref"></a>cref(T <span class="bold"><strong>const</strong></span>&amp; t);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a>&lt;T const&gt;(t)</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Does not throw.</p>
+</li>
+</ol></div>
+</div>
+</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 © 1999, 2000 Jaakko Järvi<br>Copyright © 2001, 2002 Peter Dimov<br>Copyright © 2002 David Abrahams</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ref/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="is_reference_wrapper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_all.html b/doc/html/replace_all.html
new file mode 100644
index 0000000000..0f227b9326
--- /dev/null
+++ b/doc/html/replace_all.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_all</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_all_copy.html" title="Function replace_all_copy">
+<link rel="next" href="ireplace_all_copy.html" title="Function ireplace_all_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_all"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_all</span></h2>
+<p>boost::algorithm::replace_all &#8212; Replace all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_all(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                   <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352978"></a><h2>Description</h2>
+<p>Replace all occurrences of the search string in the input with the format string. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference to the modified input </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_all_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_all_copy.html b/doc/html/replace_all_copy.html
new file mode 100644
index 0000000000..416e71eaeb
--- /dev/null
+++ b/doc/html/replace_all_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_all_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_nth.html" title="Function template ireplace_nth">
+<link rel="next" href="replace_all.html" title="Function template replace_all">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_all_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_all_copy</span></h2>
+<p>boost::algorithm::replace_all_copy &#8212; Replace all algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_all_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                   <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> replace_all_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                             <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352846"></a><h2>Description</h2>
+<p>Replace all occurrences of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_nth.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_all.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_all_regex.html b/doc/html/replace_all_regex.html
new file mode 100644
index 0000000000..4c5e15bd7e
--- /dev/null
+++ b/doc/html/replace_all_regex.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_all_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="replace_all_regex_copy.html" title="Function replace_all_regex_copy">
+<link rel="next" href="erase_regex_copy.html" title="Function erase_regex_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_all_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_all_regex</span></h2>
+<p>boost::algorithm::replace_all_regex &#8212; Replace all regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_all_regex(SequenceT &amp; Input,
+                         <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                         <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                         match_flag_type Flags = match_default|format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347042"></a><h2>Description</h2>
+<p>Format all substrings, matching given regex, with the specified format. The input string is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_all_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="erase_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_all_regex_copy.html b/doc/html/replace_all_regex_copy.html
new file mode 100644
index 0000000000..e6032cd84c
--- /dev/null
+++ b/doc/html/replace_all_regex_copy.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_all_regex_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="replace_regex.html" title="Function template replace_regex">
+<link rel="next" href="replace_all_regex.html" title="Function template replace_all_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_all_regex_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_all_regex_copy</span></h2>
+<p>boost::algorithm::replace_all_regex_copy &#8212; Replace all regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_all_regex_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                         <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                         <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                         match_flag_type Flags = match_default|format_default);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type">SequenceT</span> replace_all_regex_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                                   <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                                   <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                                   match_flag_type Flags = match_default|format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1346870"></a><h2>Description</h2>
+<p>Format all substrings, matching given regex, with the specified format. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_all_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_first.html b/doc/html/replace_first.html
new file mode 100644
index 0000000000..b42ec6556a
--- /dev/null
+++ b/doc/html/replace_first.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_first</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_first_copy.html" title="Function replace_first_copy">
+<link rel="next" href="ireplace_first_copy.html" title="Function ireplace_first_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_first"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_first</span></h2>
+<p>boost::algorithm::replace_first &#8212; Replace first algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_first(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                     <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1350967"></a><h2>Description</h2>
+<p>replace the first match of the search substring in the input with the format string. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_first_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_first_copy.html b/doc/html/replace_first_copy.html
new file mode 100644
index 0000000000..3302a7ce33
--- /dev/null
+++ b/doc/html/replace_first_copy.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_first_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_range.html" title="Function template replace_range">
+<link rel="next" href="replace_first.html" title="Function template replace_first">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_first_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_first_copy</span></h2>
+<p>boost::algorithm::replace_first_copy &#8212; Replace first algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_first_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                     <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> replace_first_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                               <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                               <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1350835"></a><h2>Description</h2>
+<p>Replace the first match of the search substring in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_range.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_first.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_head.html b/doc/html/replace_head.html
new file mode 100644
index 0000000000..2b9c1cc8b2
--- /dev/null
+++ b/doc/html/replace_head.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_head</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_head_copy.html" title="Function replace_head_copy">
+<link rel="next" href="replace_tail_copy.html" title="Function replace_tail_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_head_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_tail_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_head"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_head</span></h2>
+<p>boost::algorithm::replace_head &#8212; Replace head algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_head(SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N, <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353617"></a><h2>Description</h2>
+<p>Replace the head of the input with the given format string. The head is a prefix of a string of given size. If the sequence is shorter then required, the whole string is considered to be the head. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_head_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_tail_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_head_copy.html b/doc/html/replace_head_copy.html
new file mode 100644
index 0000000000..40c5edb3c2
--- /dev/null
+++ b/doc/html/replace_head_copy.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_head_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_all.html" title="Function template ireplace_all">
+<link rel="next" href="replace_head.html" title="Function template replace_head">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_head_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_head_copy</span></h2>
+<p>boost::algorithm::replace_head_copy &#8212; Replace head algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_head_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N, <span class="bold"><strong>const</strong></span> Range2T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> replace_head_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N,
+                              <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353486"></a><h2>Description</h2>
+<p>Replace the head of the input with the given format string. The head is a prefix of a string of given size. If the sequence is shorter then required, whole string if considered to be the head. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the head </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_all.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_head.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_last.html b/doc/html/replace_last.html
new file mode 100644
index 0000000000..022efd1eca
--- /dev/null
+++ b/doc/html/replace_last.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_last</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_last_copy.html" title="Function replace_last_copy">
+<link rel="next" href="ireplace_last_copy.html" title="Function ireplace_last_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_last"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_last</span></h2>
+<p>boost::algorithm::replace_last &#8212; Replace last algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_last(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351601"></a><h2>Description</h2>
+<p>Replace the last match of the search string in the input with the format string. Input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_last_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_last_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_last_copy.html b/doc/html/replace_last_copy.html
new file mode 100644
index 0000000000..27e6936786
--- /dev/null
+++ b/doc/html/replace_last_copy.html
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_last_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_first.html" title="Function template ireplace_first">
+<link rel="next" href="replace_last.html" title="Function template replace_last">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_last_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_last_copy</span></h2>
+<p>boost::algorithm::replace_last_copy &#8212; Replace last algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_last_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>const</strong></span> Range3T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> replace_last_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                              <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1351468"></a><h2>Description</h2>
+<p>Replace the last match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_first.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_last.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_nth.html b/doc/html/replace_nth.html
new file mode 100644
index 0000000000..310e1e4933
--- /dev/null
+++ b/doc/html/replace_nth.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_nth</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_nth_copy.html" title="Function replace_nth_copy">
+<link rel="next" href="ireplace_nth_copy.html" title="Function ireplace_nth_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_nth"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_nth</span></h2>
+<p>boost::algorithm::replace_nth &#8212; Replace nth algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_nth(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                   <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth, <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352288"></a><h2>Description</h2>
+<p>Replace an Nth (zero-indexed) match of the search string in the input with the format string. Input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_nth_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="ireplace_nth_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_nth_copy.html b/doc/html/replace_nth_copy.html
new file mode 100644
index 0000000000..feee549405
--- /dev/null
+++ b/doc/html/replace_nth_copy.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_nth_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="ireplace_last.html" title="Function template ireplace_last">
+<link rel="next" href="replace_nth.html" title="Function template replace_nth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_nth_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_nth_copy</span></h2>
+<p>boost::algorithm::replace_nth_copy &#8212; Replace nth algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+         <span class="bold"><strong>typename</strong></span> Range3T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_nth_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                   <span class="bold"><strong>const</strong></span> Range2T &amp; Search, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth,
+                   <span class="bold"><strong>const</strong></span> Range3T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">SequenceT</span> replace_nth_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> Range1T &amp; Search,
+                             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> Nth, <span class="bold"><strong>const</strong></span> Range2T &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1352137"></a><h2>Description</h2>
+<p>Replace an Nth (zero-indexed) match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Nth</span></dt>
+<dd><p>An index of the match to be replaced. The index is 0-based. </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Search</span></dt>
+<dd><p>A substring to be searched for </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ireplace_last.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_nth.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_range.html b/doc/html/replace_range.html
new file mode 100644
index 0000000000..bde7286de9
--- /dev/null
+++ b/doc/html/replace_range.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_range</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_range_copy.html" title="Function replace_range_copy">
+<link rel="next" href="replace_first_copy.html" title="Function replace_first_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_range_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_range"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_range</span></h2>
+<p>boost::algorithm::replace_range &#8212; Replace range algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_range(SequenceT &amp; Input,
+                     <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_iterator&lt; SequenceT &gt;::type &gt; &amp; SearchRange,
+                     <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1350663"></a><h2>Description</h2>
+<p>Replace the given range in the input string. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">SearchRange</span></dt>
+<dd><p>A range in the input to be substituted </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_range_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_first_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_range_copy.html b/doc/html/replace_range_copy.html
new file mode 100644
index 0000000000..7696f5f414
--- /dev/null
+++ b/doc/html/replace_range_copy.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_range_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="id869818.html" title="Function template regex_formatter">
+<link rel="next" href="replace_range.html" title="Function template replace_range">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id869818.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_range_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_range_copy</span></h2>
+<p>boost::algorithm::replace_range_copy &#8212; Replace range algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_range_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                     <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; Range1T &gt;::type &gt; &amp; SearchRange,
+                     <span class="bold"><strong>const</strong></span> Range2T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> replace_range_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                               <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; SequenceT &gt;::type &gt; &amp; SearchRange,
+                               <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1350537"></a><h2>Description</h2>
+<p>Replace the given range in the input string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">SearchRange</span></dt>
+<dd><p>A range in the input to be substituted </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id869818.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_range.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_regex.html b/doc/html/replace_regex.html
new file mode 100644
index 0000000000..71ccef7d6d
--- /dev/null
+++ b/doc/html/replace_regex.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="replace_regex_copy.html" title="Function replace_regex_copy">
+<link rel="next" href="replace_all_regex_copy.html" title="Function replace_all_regex_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_all_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_regex</span></h2>
+<p>boost::algorithm::replace_regex &#8212; Replace regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_regex(SequenceT &amp; Input,
+                     <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                     <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                     match_flag_type Flags = match_default|format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1346662"></a><h2>Description</h2>
+<p>Search for a substring matching given regex and format it with the specified format. The input string is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_regex_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_all_regex_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_regex_copy.html b/doc/html/replace_regex_copy.html
new file mode 100644
index 0000000000..59bdfcf6b3
--- /dev/null
+++ b/doc/html/replace_regex_copy.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_regex_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="find_regex.html" title="Function template find_regex">
+<link rel="next" href="replace_regex.html" title="Function template replace_regex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_regex_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_regex_copy</span></h2>
+<p>boost::algorithm::replace_regex_copy &#8212; Replace regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_regex_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                     <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                     <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                     match_flag_type Flags = match_default|format_default);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+         <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+  <span class="type">SequenceT</span> replace_regex_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                               <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+                               <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format,
+                               match_flag_type Flags = match_default|format_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1346500"></a><h2>Description</h2>
+<p>Search for a substring matching given regex and format it with the specified format. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Format</span></dt>
+<dd><p>Regex format definition </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="replace_regex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_tail.html b/doc/html/replace_tail.html
new file mode 100644
index 0000000000..32431a8b05
--- /dev/null
+++ b/doc/html/replace_tail.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template replace_tail</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_tail_copy.html" title="Function replace_tail_copy">
+<link rel="next" href="has_const_time_erase.html" title="Class template has_const_time_erase">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_tail_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="has_const_time_erase.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_tail"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template replace_tail</span></h2>
+<p>boost::algorithm::replace_tail &#8212; Replace tail algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> replace_tail(SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N, <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353910"></a><h2>Description</h2>
+<p>Replace the tail of the input with the given format sequence. The tail is a suffix of a string of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the tail </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_tail_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="has_const_time_erase.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/replace_tail_copy.html b/doc/html/replace_tail_copy.html
new file mode 100644
index 0000000000..673cbd3749
--- /dev/null
+++ b/doc/html/replace_tail_copy.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function replace_tail_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">
+<link rel="prev" href="replace_head.html" title="Function template replace_head">
+<link rel="next" href="replace_tail.html" title="Function template replace_tail">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="replace_tail_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function replace_tail_copy</span></h2>
+<p>boost::algorithm::replace_tail_copy &#8212; Replace tail algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type">OutputIteratorT</span>
+  replace_tail_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> Range1T &amp; Input,
+                    <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N, <span class="bold"><strong>const</strong></span> Range2T &amp; Format);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">SequenceT</span> replace_tail_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N,
+                              <span class="bold"><strong>const</strong></span> RangeT &amp; Format);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1353778"></a><h2>Description</h2>
+<p>Replace the tail of the input with the given format string. The tail is a suffix of a string of given size. If the sequence is shorter then required, whole string is considered to be the tail. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Format</span></dt>
+<dd><p>A substitute string </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input string </p></dd>
+<dt><span class="term">N</span></dt>
+<dd><p>Length of the tail </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a modified copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="replace_head.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id797239"><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="replace_tail.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/scoped_connection.html b/doc/html/scoped_connection.html
new file mode 100644
index 0000000000..4fcbd770f1
--- /dev/null
+++ b/doc/html/scoped_connection.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class scoped_connection</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id1188227" title="Header &lt;boost/signals/connection.hpp&gt;">
+<link rel="prev" href="connection.html" title="Class connection">
+<link rel="next" href="visit_each.html" title="Function template visit_each">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="connection.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1188227"><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="visit_each.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="scoped_connection"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class scoped_connection</span></h2>
+<p>boost::signals::scoped_connection &#8212; Limits a signal-slot connection lifetime to a particular scope.</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"><strong>class</strong></span> scoped_connection : <span class="bold"><strong>private</strong></span> noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="scoped_connection.html#scoped_connectionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="scoped_connection.html#id1181802-bb">scoped_connection</a>(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp;);
+  <a href="scoped_connection.html#id1006932-bb">~scoped_connection</a>();
+
+  <span class="emphasis"><em>// <a href="scoped_connection.html#id1075473-bb">connection management</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="scoped_connection.html#id725789-bb">disconnect</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="scoped_connection.html#id1187176-bb">connected</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1286250"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1286253"></a><h3>
+<a name="scoped_connectionconstruct-copy-destruct"></a><code class="computeroutput">scoped_connection</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1181802-bb"></a>scoped_connection(<span class="bold"><strong>const</strong></span> <a href="connection.html" title="Class connection">connection</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">this</code> references
+ the connection referenced by
+ <code class="computeroutput">other</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1006932-bb"></a>~scoped_connection();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If
+ <code class="computeroutput">this-&gt;<a href="scoped_connection.html#id1187176-bb">connected</a>()</code>,
+ disconnects the signal-slot connection.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1286365"></a><h3>
+<a name="id1075473-bb"></a><code class="computeroutput">scoped_connection</code> connection management</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id725789-bb"></a>disconnect() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If
+ <code class="computeroutput">this-&gt;<a href="scoped_connection.html#id1187176-bb">connected</a>()</code>,
+ disconnects the signal and slot referenced by this;
+ otherwise, this operation is a no-op.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">!this-&gt;<a href="scoped_connection.html#id1187176-bb">connected</a>()</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1187176-bb"></a>connected() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if this
+ references a non-NULL connection that is still active
+ (connected), and <code class="computeroutput">false</code>
+ otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="connection.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1188227"><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="visit_each.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/second_clock.html b/doc/html/second_clock.html
new file mode 100644
index 0000000000..a2cfdbba6e
--- /dev/null
+++ b/doc/html/second_clock.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template second_clock</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id689644" title="Header &lt;boost/date_time/time_clock.hpp&gt;">
+<link rel="prev" href="base_time.html" title="Class template base_time">
+<link rel="next" href="id829552.html" title="Class template time_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="base_time.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id689644"><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="id829552.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="second_clock"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template second_clock</span></h2>
+<p>boost::date_time::second_clock &#8212; A clock providing time level services based on C time_t capabilities. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+<span class="bold"><strong>class</strong></span> second_clock {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type          date_type;         
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;
+
+  <span class="emphasis"><em>// <a href="second_clock.html#id862776-bb">public static functions</a></em></span>
+  <span class="type">time_type</span> <a href="second_clock.html#id824960-bb">local_time</a>() ;
+  <span class="type">time_type</span> <a href="second_clock.html#id824973-bb">universal_time</a>() ;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type&gt;
+    <span class="type">time_type</span> <a href="second_clock.html#id824990-bb">local_time</a>(boost::shared_ptr&lt; time_zone_type &gt;) ;
+
+  <span class="emphasis"><em>// <a href="second_clock.html#id825025-bb">private static functions</a></em></span>
+  <span class="type">time_type</span> <a href="second_clock.html#id825030-bb">create_time</a>(::std::tm *) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1118017"></a><h2>Description</h2>
+<p>This clock provides resolution to the 1 second level </p>
+<div class="refsect2" lang="en">
+<a name="id1118024"></a><h3>
+<a name="id862776-bb"></a><code class="computeroutput">second_clock</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id824960-bb"></a>local_time() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id824973-bb"></a>universal_time() ;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type&gt;
+  <span class="type">time_type</span> <a name="id824990-bb"></a>local_time(boost::shared_ptr&lt; time_zone_type &gt; tz_ptr) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1118098"></a><h3>
+<a name="id825025-bb"></a><code class="computeroutput">second_clock</code> private static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">time_type</span> <a name="id825030-bb"></a>create_time(::std::tm * current) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="base_time.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id689644"><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="id829552.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/seconds.html b/doc/html/seconds.html
new file mode 100644
index 0000000000..c656d1265e
--- /dev/null
+++ b/doc/html/seconds.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class seconds</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id975624" title="Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;">
+<link rel="prev" href="minutes.html" title="Class minutes">
+<link rel="next" href="id905079.html" title="Function template operator&gt;&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="minutes.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="id905079.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="seconds"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class seconds</span></h2>
+<p>boost::posix_time::seconds &#8212; Allows expression of durations as a seconds count. </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"><strong>class</strong></span> seconds : <span class="bold"><strong>public</strong></span> boost::posix_time::time_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="seconds.html#secondsconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="seconds.html#id1103510-bb">seconds</a>(<span class="bold"><strong>long</strong></span>);
+
+  <span class="emphasis"><em>// <a href="seconds.html#id941894-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1177029"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1177033"></a><h3>
+<a name="secondsconstruct-copy-destruct"></a><code class="computeroutput">seconds</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1103510-bb"></a>seconds(<span class="bold"><strong>long</strong></span> s);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1177071"></a><h3>
+<a name="id941894-bb"></a><code class="computeroutput">seconds</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="minutes.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975624"><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="id905079.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signal.html b/doc/html/signal.html
new file mode 100644
index 0000000000..45778f1c6b
--- /dev/null
+++ b/doc/html/signal.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template signal</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#header.boost.signal.hpp" title="Header &lt;boost/signal.hpp&gt;">
+<link rel="prev" href="signalN.html" title="Class template signalN">
+<link rel="next" href="slot.html" title="Class template slot">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signalN.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#header.boost.signal.hpp"><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="slot.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="signal"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template signal</span></h2>
+<p>boost::signal &#8212; Safe multicast callback.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="emphasis"><em> // Function type R (T1, T2, ..., TN)</em></span>
+         <span class="bold"><strong>typename</strong></span> Combiner = <a href="last_value.html" title="Class template last_value">last_value</a>&lt;R&gt;,
+         <span class="bold"><strong>typename</strong></span> Group = <span class="bold"><strong>int</strong></span>,
+         <span class="bold"><strong>typename</strong></span> GroupCompare = std::less&lt;Group&gt;,
+         <span class="bold"><strong>typename</strong></span> SlotFunction = <a href="functionN.html" title="Class template functionN">functionN</a>&lt;Signature&gt; &gt;
+<span class="bold"><strong>class</strong></span> signal : <span class="bold"><strong>public</strong></span> <a href="signalN.html" title="Class template signalN">signalN</a>&lt;R, T1, T2, ..., TN, Combiner, Group, GroupCompare, SlotFunction&gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="signal.html#signalconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="signal.html#id726530-bb">signal</a>(<span class="bold"><strong>const</strong></span> combiner_type&amp; = combiner_type(),
+         <span class="bold"><strong>const</strong></span> group_compare_type&amp; = group_compare_type());
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1284049"></a><h2>Description</h2>
+<p>Class template <a href="signal.html" title="Class template signal">signal</a> is a thin
+ wrapper around the numbered class templates <a href="signalN.html" title="Class template signalN">signal0</a>, <a href="signalN.html" title="Class template signalN">signal1</a>, etc. It accepts a function
+ type with N arguments instead of N separate arguments, and
+ derives from the appropriate <a href="signalN.html" title="Class template signalN">signalN</a>
+ instantiation.</p>
+<p>All functionality of this class template is in its base
+ class <a href="signalN.html" title="Class template signalN">signalN</a>.</p>
+<div class="refsect2" lang="en">
+<a name="id1284094"></a><h3>
+<a name="signalconstruct-copy-destruct"></a><code class="computeroutput">signal</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id726530-bb"></a>signal(<span class="bold"><strong>const</strong></span> combiner_type&amp; combiner = combiner_type(),
+       <span class="bold"><strong>const</strong></span> group_compare_type&amp; compare = group_compare_type());</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Initializes the base class with the given combiner
+ and comparison objects.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signalN.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#header.boost.signal.hpp"><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="slot.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signalN.html b/doc/html/signalN.html
new file mode 100644
index 0000000000..f16474057b
--- /dev/null
+++ b/doc/html/signalN.html
@@ -0,0 +1,307 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template signalN</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#header.boost.signal.hpp" title="Header &lt;boost/signal.hpp&gt;">
+<link rel="prev" href="signals/reference.html" title="Reference">
+<link rel="next" href="signal.html" title="Class template signal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signals/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#header.boost.signal.hpp"><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="signal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="signalN"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template signalN</span></h2>
+<p>boost::signalN &#8212; Set of safe multicast callback types.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN,
+         <span class="bold"><strong>typename</strong></span> Combiner = <a href="last_value.html" title="Class template last_value">last_value</a>&lt;R&gt;, <span class="bold"><strong>typename</strong></span> Group = <span class="bold"><strong>int</strong></span>,
+         <span class="bold"><strong>typename</strong></span> GroupCompare = std::less&lt;Group&gt;,
+         <span class="bold"><strong>typename</strong></span> SlotFunction = <a href="functionN.html" title="Class template functionN">functionN</a>&lt;R, T1, T2, ..., TN&gt; &gt;
+<span class="bold"><strong>class</strong></span> signalN : <span class="bold"><strong>public</strong></span> <a href="trackable.html" title="Class trackable">signals::trackable</a>,
+                <span class="bold"><strong>private</strong></span> noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>typename</strong></span> Combiner::result_type result_type;         
+  <span class="bold"><strong>typedef</strong></span> Combiner                       combiner_type;       
+  <span class="bold"><strong>typedef</strong></span> Group                          group_type;          
+  <span class="bold"><strong>typedef</strong></span> GroupCompare                   group_compare_type;  
+  <span class="bold"><strong>typedef</strong></span> SlotFunction                   slot_function_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="slot.html" title="Class template slot">slot</a>&lt;SlotFunction&gt;             slot_type;           
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span>                    slot_result_type;    
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span>                    slot_call_iterator;  
+  <span class="bold"><strong>typedef</strong></span> T1                             argument_type;        <span class="emphasis"><em>// If N == 1</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1                             first_argument_type;  <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T2                             second_argument_type; <span class="emphasis"><em>// If N == 2</em></span>
+  <span class="bold"><strong>typedef</strong></span> T1                             arg1_type;           
+  <span class="bold"><strong>typedef</strong></span> T2                             arg2_type;           
+     .
+     .
+     .
+  <span class="bold"><strong>typedef</strong></span> TN                             argN_type;           
+
+  <span class="emphasis"><em>// static constants</em></span>
+  <span class="bold"><strong>static</strong></span> <span class="bold"><strong>const</strong></span> <span class="bold"><strong>int</strong></span> arity = N;
+
+  <span class="emphasis"><em>// <a href="signalN.html#signalNconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="signalN.html#id1138504-bb">signalN</a>(<span class="bold"><strong>const</strong></span> combiner_type&amp; = combiner_type(),
+          <span class="bold"><strong>const</strong></span> group_compare_type&amp; = group_compare_type());
+  <a href="signalN.html#id1180046-bb">~signalN</a>();
+
+  <span class="emphasis"><em>// <a href="signalN.html#id1180666-bb">connection management</a></em></span>
+  <span class="type"><a href="connection.html" title="Class connection">signals::connection</a></span>
+  <a href="signalN.html#id827502-bb">connect</a>(<span class="bold"><strong>const</strong></span> slot_type&amp;, signals::connect_position = signals::at_back);
+  <span class="type"><a href="connection.html" title="Class connection">signals::connection</a></span>
+  <a href="signalN.html#id1114712-bb">connect</a>(<span class="bold"><strong>const</strong></span> group_type&amp;, <span class="bold"><strong>const</strong></span> slot_type&amp;,
+          signals::connect_position = signals::at_back);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="signalN.html#id828880-bb">disconnect</a>(<span class="bold"><strong>const</strong></span> group_type&amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Slot&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="signalN.html#id1114668-bb">disconnect</a>(<span class="bold"><strong>const</strong></span> Slot&amp;);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="signalN.html#id766518-bb">disconnect_all_slots</a>();
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="signalN.html#id1205908-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::size_t</span> <a href="signalN.html#id1180077-bb">num_slots</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="signalN.html#id754312-bb">invocation</a></em></span>
+  <span class="type">result_type</span> <a href="signalN.html#id929945-bb"><span class="bold"><strong>operator</strong></span>()</a>(arg1_type, arg2_type, ..., argN_type);
+  <span class="type">result_type</span> <a href="signalN.html#id1033123-bb"><span class="bold"><strong>operator</strong></span>()</a>(arg1_type, arg2_type, ..., argN_type) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="signalN.html#id1072601-bb">combiner access</a></em></span>
+  <span class="type">combiner_type&amp;</span> <a href="signalN.html#id1005128-bb">combiner</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> combiner_type&amp;</span> <a href="signalN.html#id971496-bb">combiner</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1283053"></a><h2>Description</h2>
+<p>The class template <a href="signalN.html" title="Class template signalN">signalN</a> covers
+ several related classes signal0, signal1, signal2, etc.,
+ where the number suffix describes the number of function
+ parameters the signal and its connected slots will
+ take. Instead of enumerating all classes, a single pattern
+ <a href="signalN.html" title="Class template signalN">signalN</a> will be described, where N
+ represents the number of function parameters.</p>
+<div class="refsect2" lang="en">
+<a name="id1283079"></a><h3>
+<a name="signalNconstruct-copy-destruct"></a><code class="computeroutput">signalN</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1138504-bb"></a>signalN(<span class="bold"><strong>const</strong></span> combiner_type&amp; combiner = combiner_type(),
+        <span class="bold"><strong>const</strong></span> group_compare_type&amp; compare = group_compare_type());</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Initializes the signal to contain no slots, copies the given combiner into internal storage, and stores the given group comparison function object to compare groups.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="signalN.html#id1205908-bb">empty</a>()</code></p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1180046-bb"></a>~signalN();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Disconnects all slots connected to <code class="computeroutput">*this</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1283187"></a><h3>
+<a name="id1180666-bb"></a><code class="computeroutput">signalN</code> connection management</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<p><a name="id733315-bb"></a></p>
+<pre class="literallayout"><span class="type"><a href="connection.html" title="Class connection">signals::connection</a></span>
+<a name="id827502-bb"></a>connect(<span class="bold"><strong>const</strong></span> slot_type&amp; slot,
+        signals::connect_position at = signals::at_back);
+<span class="type"><a href="connection.html" title="Class connection">signals::connection</a></span>
+<a name="id1114712-bb"></a>connect(<span class="bold"><strong>const</strong></span> group_type&amp; group, <span class="bold"><strong>const</strong></span> slot_type&amp; slot,
+        signals::connect_position at = signals::at_back);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Connects the signal this to the incoming
+ slot. If the slot is inactive, i.e., any of the trackable
+ objects bound by the slot call have been destroyed, then the
+ call to connect is a no-op. If the second version of
+ <code class="computeroutput">connect</code> is invoked, the
+ slot is associated with the given group. The <code class="computeroutput">at</code>
+ parameter specifies where the slot should be connected:
+ <code class="computeroutput">at_front</code> indicates that the slot will be
+ connected at the front of the list or group of slots and
+ <code class="computeroutput">at_back</code> indicates that the slot will be
+ connected at the back of the list or group of
+ slots.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A
+ <code class="computeroutput"><a href="connection.html" title="Class connection">signals::connection</a></code>
+ object that references the newly-created connection between
+ the signal and the slot; if the slot is inactive, returns a
+ disconnected connection.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ This routine meets the strong exception guarantee,
+ where any exception thrown will cause the slot to not be
+ connected to the signal.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ Constant time when connecting a slot
+ without a group name or logarithmic in the number of groups
+ when connecting to a particular
+ group.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ It is unspecified whether connecting a slot while the
+ signal is calling will result in the slot being called
+ immediately.</p>
+</li>
+<li>
+<p><a name="id1180525-bb"></a></p>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id828880-bb"></a>disconnect(<span class="bold"><strong>const</strong></span> group_type&amp; group);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Slot&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1114668-bb"></a>disconnect(<span class="bold"><strong>const</strong></span> Slot&amp; slot);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If the parameter is (convertible to) a
+ group name, any slots in the given group are
+ disconnected. Otherwise, any slots equal to the given slot
+ are disconnected.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw unless a user destructor or
+ equality operator <code class="computeroutput">==</code> throws. If either throws,
+ not all slots may be disconnected.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ If a group is given, O(lg g) + k where
+ g is the number of groups in the signal and k is the
+ number of slots in the group. Otherwise, linear in the
+ number of slots connected to the
+ signal.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id766518-bb"></a>disconnect_all_slots();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Disconnects all slots connected to the signal.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">this-&gt;<a href="signalN.html#id1205908-bb">empty</a>()</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If disconnecting a slot causes an exception to be
+ thrown, not all slots may be disconnected.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ Linear in the number of slots known to the
+ signal.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ May be called at any time within the lifetime of the
+ signal, including during calls to the signal's slots.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1205908-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if no slots
+ are connected to the signal, and
+ <code class="computeroutput">false</code> otherwise.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ Linear in the number of slots known to the
+ signal.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Slots can disconnect at any point in time,
+ including while those same slots are being invoked. It is
+ therefore possible that the implementation must search
+ through a list of disconnected slots to determine if any
+ slots are still connected.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::size_t</span> <a name="id1180077-bb"></a>num_slots() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The number of slots connected to the signal<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Complexity</span></b>:
+
+ Linear in the number of slots known to the
+ signal.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Slots can disconnect at any point in time,
+ including while those same slots are being invoked. It is
+ therefore possible that the implementation must search
+ through a list of disconnected slots to determine how many
+ slots are still connected.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1283664"></a><h3>
+<a name="id754312-bb"></a><code class="computeroutput">signalN</code> invocation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<p><a name="id660902-bb"></a></p>
+<pre class="literallayout"><span class="type">result_type</span> <a name="id929945-bb"></a><span class="bold"><strong>operator</strong></span>()(arg1_type a1, arg2_type a2, ... , argN_type aN);
+<span class="type">result_type</span> <a name="id1033123-bb"></a><span class="bold"><strong>operator</strong></span>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Invokes the combiner with a
+ <code class="computeroutput">slot_call_iterator</code> range
+ [first, last) corresponding to the sequence of calls to the
+ slots connected to signal
+ <code class="computeroutput">*this</code>. Dereferencing an
+ iterator in this range causes a slot call with the given set
+ of parameters <code class="computeroutput">(a1, a2, ...,
+ aN)</code>, the result of which is returned from
+ the iterator dereference operation.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result returned by the combiner.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ If an exception is thrown by a slot call, or if the
+ combiner does not dereference any slot past some given slot,
+ all slots after that slot in the internal list of connected
+ slots will not be invoked.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Only the slots associated with iterators that are
+ actually dereferenced will be invoked. Multiple dereferences
+ of the same iterator will not result in multiple slot
+ invocations, because the return value of the slot will be
+ cached.<p>The <code class="computeroutput">const</code> version of
+ the function call operator will invoke the combiner as
+ <code class="computeroutput">const</code>, whereas the
+ non-<code class="computeroutput">const</code> version will
+ invoke the combiner as
+ non-<code class="computeroutput">const</code>.</p><p>Calling the function call operator may invoke undefined
+ behavior if no slots are connected to the signal, depending
+ on the combiner used. The default combiner is well-defined
+ for zero slots when the return type is void but is undefined
+ when the return type is any other type (because there is no
+ way to synthesize a return value).</p></p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1283828"></a><h3>
+<a name="id1072601-bb"></a><code class="computeroutput">signalN</code> combiner access</h3>
+<div class="orderedlist"><ol type="1"><li>
+<p><a name="id826565-bb"></a></p>
+<pre class="literallayout"><span class="type">combiner_type&amp;</span> <a name="id1005128-bb"></a>combiner();
+<span class="type"><span class="bold"><strong>const</strong></span> combiner_type&amp;</span> <a name="id971496-bb"></a>combiner() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference to the stored combiner.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signals/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#header.boost.signal.hpp"><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="signal.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals.html b/doc/html/signals.html
index 61ee2ca920..fe0f2e925e 100644
--- a/doc/html/signals.html
+++ b/doc/html/signals.html
@@ -1,10 +1,116 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/signals.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/signals.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/signals.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 9. Boost.Signals</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="ref/ack.html" title="Acknowledgements">
+<link rel="next" href="signals/tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ref/ack.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="signals/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="signals"></a>Chapter 9. Boost.Signals</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Douglas</span> <span class="surname">Gregor</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2001-2004 Douglas Gregor</p></div>
+<div><div class="legalnotice">
+<a name="id1279919"></a><p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="signals.html#id1279939">Introduction</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html">Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="signals/tutorial.html#id1279986">How to Read this Tutorial</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1280044">Compatibility Note</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1280117">Hello, World! (Beginner)</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1280248">Calling multiple slots</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1280595">Passing values to and from slots</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1281385">Connection Management</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1282050">Example: Document-View</a></span></dt>
+<dt><span class="section"><a href="signals/tutorial.html#id1282163">Linking against the Signals library</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="signals/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="signals/reference.html#header.boost.signal.hpp">Header &lt;boost/signal.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html#id907390">Header &lt;boost/signals/slot.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html#id1033936">Header &lt;boost/signals/trackable.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html#id1188227">Header &lt;boost/signals/connection.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html#id1145207">Header &lt;boost/visit_each.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="signals/reference.html#id936232">Header &lt;boost/last_value.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="signals/s04.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="signals/s05.html">Design Overview</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="signals/s05.html#id1287381">Type Erasure</a></span></dt>
+<dt><span class="section"><a href="signals/s05.html#id1287446"><code class="computeroutput">connection</code> class</a></span></dt>
+<dt><span class="section"><a href="signals/s05.html#id1287554">Slot Call Iterator</a></span></dt>
+<dt><span class="section"><a href="signals/s05.html#id1287705"><code class="computeroutput">visit_each</code> function template</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="signals/s06.html">Design Rationale</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="signals/s06.html#id1287852">Choice of Slot Definitions</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html#id1287920">User-level Connection Management</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html#id1288058">Combiner Interface</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html#id1288110">Connection Interfaces: += operator</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html#id1288264"><code class="computeroutput">trackable</code> rationale</a></span></dt>
+<dt><span class="section"><a href="signals/s06.html#id1288419">Comparison with other Signal/Slot implementations</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="signals/tests.html">Testsuite</a></span></dt>
+<dd><dl><dt><span class="section"><a href="signals/tests.html#id1288509">Acceptance tests</a></span></dt></dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id1279939"></a>Introduction</h3></div></div></div>
+<p>The Boost.Signals library is an implementation of a managed
+signals and slots system. Signals represent callbacks with multiple
+targets, and are also called publishers or events in similar
+systems. Signals are connected to some set of slots, which are
+callback receivers (also called event targets or subscribers), which
+are called when the signal is "emitted."</p>
+<p>Signals and slots are managed, in that signals and slots (or,
+more properly, objects that occur as part of the slots) track all
+connections and are capable of automatically disconnecting signal/slot
+connections when either is destroyed. This enables the user to make
+signal/slot connections without expending a great effort to manage the
+lifetimes of those connections with regard to the lifetimes of all
+objects involved.</p>
+<p>When signals are connected to multiple slots, there is a
+question regarding the relationship between the return values of the
+slots and the return value of the signals. Boost.Signals allows the
+user to specify the manner in which multiple return values are
+combined.</p>
+</div>
+</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 04, 2004 at 18:17:22 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ref/ack.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="signals/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/signals/reference.html b/doc/html/signals/reference.html
new file mode 100644
index 0000000000..64305b9d52
--- /dev/null
+++ b/doc/html/signals/reference.html
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="../signalN.html" title="Class template signalN">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="../signalN.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="signals.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#header.boost.signal.hpp">Header &lt;boost/signal.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id907390">Header &lt;boost/signals/slot.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1033936">Header &lt;boost/signals/trackable.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1188227">Header &lt;boost/signals/connection.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1145207">Header &lt;boost/visit_each.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id936232">Header &lt;boost/last_value.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.signal.hpp"></a>Header &lt;<a href="../../../boost/signal.hpp" target="_top">boost/signal.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN,
+           <span class="bold"><strong>typename</strong></span> Combiner = <a href="../last_value.html" title="Class template last_value">last_value</a>&lt;R&gt;, <span class="bold"><strong>typename</strong></span> Group = <span class="bold"><strong>int</strong></span>,
+           <span class="bold"><strong>typename</strong></span> GroupCompare = std::less&lt;Group&gt;,
+           <span class="bold"><strong>typename</strong></span> SlotFunction = <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;R, T1, T2, ..., TN&gt; &gt;
+   <span class="bold"><strong>class</strong></span> <a href="../signalN.html" title="Class template signalN">signalN</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Signature, <span class="bold"><strong>typename</strong></span> Combiner = <a href="../last_value.html" title="Class template last_value">last_value</a>&lt;R&gt;,
+           <span class="bold"><strong>typename</strong></span> Group = <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>typename</strong></span> GroupCompare = std::less&lt;Group&gt;,
+           <span class="bold"><strong>typename</strong></span> SlotFunction = <a href="../functionN.html" title="Class template functionN">functionN</a>&lt;Signature&gt; &gt;
+   <span class="bold"><strong>class</strong></span> <a href="../signal.html" title="Class template signal">signal</a>;
+  <span class="bold"><strong>namespace</strong></span> signals {
+
+    <span class="bold"><strong>enum</strong></span> <a name="id1216304"></a>connect_position { at_front, at_back };
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id907390"></a>Header &lt;<a href="../../../boost/signals/slot.hpp" target="_top">boost/signals/slot.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SlotFunction&gt; <span class="bold"><strong>class</strong></span> <a href="../slot.html" title="Class template slot">slot</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1033936"></a>Header &lt;<a href="../../../boost/signals/trackable.hpp" target="_top">boost/signals/trackable.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> signals {
+    <span class="bold"><strong>class</strong></span> <a href="../trackable.html" title="Class trackable">trackable</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1188227"></a>Header &lt;<a href="../../../boost/signals/connection.hpp" target="_top">boost/signals/connection.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> signals {
+    <span class="bold"><strong>class</strong></span> <a href="../connection.html" title="Class connection">connection</a>;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../connection.html#id764168">swap</a>(<a href="../connection.html" title="Class connection">connection</a>&amp;, <a href="../connection.html" title="Class connection">connection</a>&amp;);
+    <span class="bold"><strong>class</strong></span> <a href="../scoped_connection.html" title="Class scoped_connection">scoped_connection</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1145207"></a>Header &lt;<a href="../../../boost/visit_each.hpp" target="_top">boost/visit_each.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> T&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../visit_each.html" title="Function template visit_each">visit_each</a>(<span class="bold"><strong>const</strong></span> Visitor&amp;, <span class="bold"><strong>const</strong></span> T&amp;, <span class="bold"><strong>int</strong></span>);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id936232"></a>Header &lt;<a href="../../../boost/last_value.hpp" target="_top">boost/last_value.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../last_value.html" title="Class template last_value">last_value</a>;
+
+  <span class="bold"><strong>template</strong></span>&lt;&gt; <span class="bold"><strong>class</strong></span> <a href="../id906590-bb.html" title="Class last_value&lt;void&gt;">last_value</a>&lt;<span class="bold"><strong>void</strong></span>&gt;;
+}</pre>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="../signalN.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals/s04.html b/doc/html/signals/s04.html
new file mode 100644
index 0000000000..66691e286c
--- /dev/null
+++ b/doc/html/signals/s04.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Frequently Asked Questions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="../id906590-bb.html" title="Class last_value&lt;void&gt;">
+<link rel="next" href="s05.html" title="Design Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id906590-bb.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="s05.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="id1287277"></a>Frequently Asked Questions</h3></div></div></div>
+<div class="qandaset">
+<dl>
+<dt>1. <a href="s04.html#id1287287">Don't noncopyable signal semantics mean that a class
+ with a signal member will be noncopyable as well?</a>
+</dt>
+<dt>2. <a href="s04.html#id1287301">Is Boost.Signals thread-safe?</a>
+</dt>
+<dt>3. <a href="s04.html#id1287313">How do I get Boost.Signals to work with Qt?</a>
+</dt>
+</dl>
+<table border="0" summary="Q and A Set">
+<col align="left" width="1%">
+<tbody>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1287287"></a><a name="id1287288"></a><b>1.</b>
+</td>
+<td align="left" valign="top"><p>Don't noncopyable signal semantics mean that a class
+ with a signal member will be noncopyable as well?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>No. The compiler will not be able to generate a copy
+ constructor or copy assignment operator for your class if it
+ has a signal as a member, but you are free to write your own
+ copy constructor and/or copy assignment operator. Just don't
+ try to copy the signal.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1287301"></a><a name="id1287302"></a><b>2.</b>
+</td>
+<td align="left" valign="top"><p>Is Boost.Signals thread-safe?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>No. Using Boost.Signals in a multithreaded concept is
+ very dangerous, and it is very likely that the results will be
+ less than satisfying. Boost.Signals will support thread safety
+ in the future.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1287313"></a><a name="id1287314"></a><b>3.</b>
+</td>
+<td align="left" valign="top"><p>How do I get Boost.Signals to work with Qt?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top">
+<p>When building with Qt, the Moc keywords
+ <code class="computeroutput">signals</code> and <code class="computeroutput">slots</code> are defined using
+ preprocessor macros, causing programs using Boost.Signals and
+ Qt together to fail to compile. Although this is a problem
+ with Qt and not Boost.Signals, a user can use the two systems
+ together by defining the <code class="computeroutput">BOOST_SIGNALS_NAMESPACE</code>
+ macro to some other identifier (e.g., <code class="computeroutput">signalslib</code>)
+ when building and using the Boost.Signals library. Then the
+ namespace of the Boost.Signals library will be
+ <code class="computeroutput">boost::BOOST_SIGNALS_NAMESPACE</code> instead of
+ <code class="computeroutput">boost::signals</code>. To retain the original namespace
+ name in translation units that do not interact with Qt, you
+ can use a namespace alias:</p>
+<pre class="programlisting">
+ namespace boost {
+ namespace signals = BOOST_SIGNALS_NAMESPACE;
+ }
+</pre>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: March 12, 2003 at 23:27:23 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id906590-bb.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="s05.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals/s05.html b/doc/html/signals/s05.html
new file mode 100644
index 0000000000..32fbf22e75
--- /dev/null
+++ b/doc/html/signals/s05.html
@@ -0,0 +1,209 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="s04.html" title="Frequently Asked Questions">
+<link rel="next" href="s06.html" title="Design Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="s06.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="id1287373"></a>Design Overview</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s05.html#id1287381">Type Erasure</a></span></dt>
+<dt><span class="section"><a href="s05.html#id1287446"><code class="computeroutput">connection</code> class</a></span></dt>
+<dt><span class="section"><a href="s05.html#id1287554">Slot Call Iterator</a></span></dt>
+<dt><span class="section"><a href="s05.html#id1287705"><code class="computeroutput">visit_each</code> function template</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287381"></a>Type Erasure</h4></div></div></div>
+<p>"Type erasure", where static type information is eliminated
+ by the use of dynamically dispatched interfaces, is used
+ extensively within the Boost.Signals library to reduce the amount
+ of code generated by template instantiation. Each signal must
+ manage a list of slots and their associated connections, along
+ with a <code class="computeroutput">std::map</code> to map from group identifiers to
+ their associated connections. However, instantiating this map for
+ every token type, and perhaps within each translation unit (for
+ some popular template instantiation strategies) increase compile
+ time overhead and space overhead.</p>
+<p> To combat this so-called "template bloat", we use
+ Boost.Function and Boost.Any to store unknown types and
+ operations. Then, all of the code for handling the list of slots
+ and the mapping from slot identifiers to connections is factored
+ into the class <code class="computeroutput">signal_base</code>
+ that deals exclusively with the <code class="computeroutput">any</code> and
+ <code class="computeroutput"><a href="../boost/function.html" title="Class template function">function</a></code> objects, hiding the
+ actual implementations using the well-known pimpl idiom. The
+ actual <code class="computeroutput"><a href="../signalN.html" title="Class template signalN">signalN</a></code> class templates
+ deal only with code that will change depending on the number of
+ arguments or which is inherently template-dependent (such as
+ connection).</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287446"></a><code class="computeroutput">connection</code> class</h4></div></div></div>
+<p> The <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> class is
+ central to the behavior of the Boost.Signals library. It is the
+ only entity within the Boost.Signals system that has knowledge of
+ all objects that are associated by a given connection. To be
+ specific, the <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> class
+ itself is merely a thin wrapper over a
+ <code class="computeroutput">shared_ptr</code> to a
+ <code class="computeroutput">basic_connection</code> object.</p>
+<p><code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> objects are
+ stored by all participants in the Signals system: each
+ <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> object contains a
+ list of <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> objects
+ describing all connections it is a part of; similarly, all signals
+ contain a set of pairs that define a slot. The pairs consist of a
+ slot function object (generally a Boost.Function object) and a
+ <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> object (that will
+ disconnect on destruction). Finally, the mapping from slot groups
+ to slots is based on the key value in a
+ <code class="computeroutput">std::multimap</code> (the stored data
+ in the <code class="computeroutput">std::multimap</code> is the
+ slot pair).</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287554"></a>Slot Call Iterator</h4></div></div></div>
+<p> The slot call iterator is conceptually a stack of iterator
+ adaptors that modify the behavior of the underlying iterator
+ through the list of slots. The following table describes the type
+ and behavior of each iterator adaptor required. Note that this is
+ only a conceptual model: the implementation collapses all these
+ layers into a single iterator adaptor because several popular
+ compilers failed to compile the implementation of the conceptual
+ model.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Iterator Adaptor</th>
+<th align="left">Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><p>Slot List Iterator</p></td>
+<td align="left"><p>An iterator through the list of slots
+ connected to a signal. The <code class="computeroutput">value_type</code> of this
+ iterator will be
+ <code class="computeroutput">std::pair&lt;any,
+ connection&gt;</code>, where the
+ <code class="computeroutput"><a href="../boost/any.html" title="Class any">any</a></code> contains an
+ instance of the slot function type.</p></td>
+</tr>
+<tr>
+<td align="left"><p>Filter Iterator Adaptor</p></td>
+<td align="left"><p>This filtering iterator adaptor filters out
+ slots that have been disconnected, so we never see a
+ disconnected slot in later stages.</p></td>
+</tr>
+<tr>
+<td align="left"><p>Projection Iterator Adaptor</p></td>
+<td align="left"><p>The projection iterator adaptor returns a
+ reference to the first member of the pair that constitutes
+ a connected slot (e.g., just the
+ <code class="computeroutput"><a href="../boost/any.html" title="Class any">boost::any</a></code> object that
+ holds the slot function).</p></td>
+</tr>
+<tr>
+<td align="left"><p>Transform Iterator Adaptor</p></td>
+<td align="left"><p>This transform iterator adaptor performs an
+ <code class="computeroutput"><a href="../any_cast.html" title="Function any_cast">any_cast</a></code> to
+ extract a reference to the slot function with the
+ appropriate slot function type.</p></td>
+</tr>
+<tr>
+<td align="left"><p>Transform Iterator Adaptor</p></td>
+<td align="left"><p>This transform iterator adaptor calls the
+ function object returned by dereferencing the underlying
+ iterator with the set of arguments given to the signal
+ itself, and returns the result of that slot
+ call.</p></td>
+</tr>
+<tr>
+<td align="left"><p>Input Caching Iterator Adaptor</p></td>
+<td align="left"><p>This iterator adaptor caches the result of
+ dereferencing the underlying iterator. Therefore,
+ dereferencing this iterator multiple times will only
+ result in the underlying iterator being dereferenced once;
+ thus, a slot can only be called once but its result can be
+ used multiple times.</p></td>
+</tr>
+<tr>
+<td align="left"><p>Slot Call Iterator</p></td>
+<td align="left"><p>Iterates over calls to each slot.</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287705"></a><code class="computeroutput">visit_each</code> function template</h4></div></div></div>
+<p> The <code class="computeroutput"><a href="../visit_each.html" title="Function template visit_each">visit_each</a></code>
+ function template is a mechanism for discovering objects that are
+ stored within another object. Function template
+ <code class="computeroutput"><a href="../visit_each.html" title="Function template visit_each">visit_each</a></code> takes three
+ arguments: an object to explore, a visitor function object that is
+ invoked with each subobject, and the <code class="computeroutput">int</code> 0. </p>
+<p> The third parameter is merely a temporary solution to the
+ widespread lack of proper function template partial ordering. The
+ primary <code class="computeroutput"><a href="../visit_each.html" title="Function template visit_each">visit_each</a></code>
+ function template specifies this third parameter type to be
+ <code class="computeroutput">long</code>, whereas any user specializations must specify
+ their third parameter to be of type <code class="computeroutput">int</code>. Thus, even
+ though a broken compiler cannot tell the ordering between, e.g., a
+ match against a parameter <code class="computeroutput">T</code> and a parameter
+ <code class="computeroutput">A&lt;T&gt;</code>, it can determine that the conversion from
+ the integer 0 to <code class="computeroutput">int</code> is better than the conversion to
+ <code class="computeroutput">long</code>. The ordering determined by this conversion thus
+ achieves partial ordering of the function templates in a limited,
+ but successful, way. The following example illustrates the use of
+ this technique:</p>
+<pre class="programlisting">
+template&lt;typename&gt; class A {};
+template&lt;typename T&gt; void foo(T, long);
+template&lt;typename T&gt; void foo(A&lt;T&gt;, int);
+A&lt;T&gt; at;
+foo(at, 0);
+</pre>
+<p> In this example, we assume that our compiler can not tell
+ that <code class="computeroutput">A&lt;T&gt;</code> is a better match than
+ <code class="computeroutput">T</code>, and therefore assume that the function templates
+ cannot be ordered based on that parameter. Then the conversion
+ from 0 to <code class="computeroutput">int</code> is better than the conversion from 0 to
+ <code class="computeroutput">long</code>, and the second function template is
+ chosen. </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: March 12, 2003 at 23:27:22 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="s06.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals/s06.html b/doc/html/signals/s06.html
new file mode 100644
index 0000000000..6bc44e91e4
--- /dev/null
+++ b/doc/html/signals/s06.html
@@ -0,0 +1,429 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Rationale</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="s05.html" title="Design Overview">
+<link rel="next" href="tests.html" title="Testsuite">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s05.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="tests.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="id1287843"></a>Design Rationale</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s06.html#id1287852">Choice of Slot Definitions</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1287920">User-level Connection Management</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288058">Combiner Interface</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288110">Connection Interfaces: += operator</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288264"><code class="computeroutput">trackable</code> rationale</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288419">Comparison with other Signal/Slot implementations</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287852"></a>Choice of Slot Definitions</h4></div></div></div>
+<p> The definition of a slot differs amongst signals and slots
+ libraries. Within Boost.Signals, a slot is defined in a very loose
+ manner: it can be any function object that is callable given
+ parameters of the types specified by the signal, and whose return
+ value is convertible to the result type expected by the
+ signal. However, alternative definitions have associated pros and
+ cons that were considered prior to the construction of
+ Boost.Signals.</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>Slots derive from a specific base
+ class</strong></span>: generally a scheme such as this will require
+ all user-defined slots to derive from some library-specified
+ <code class="computeroutput">Slot</code> abstract class that defines a virtual
+ function calling the slot. Adaptors can be used to convert a
+ definition such as this to a definition similar to that used
+ by Boost.Signals, but the use of a large number of small
+ adaptor classes containing virtual functions has been found to
+ cause an unacceptable increase in the size of executables
+ (polymorphic class types require more code than
+ non-polymorphic types).</p>
+<p> This approach does have the benefit of simplicity of
+ implementation and user interface, from an object-oriented
+ perspective.</p>
+</li>
+<li><p><span class="bold"><strong>Slots constructed from a set of
+ primitives</strong></span>: in this scheme the slot can have a
+ limited set of types (often derived from a common abstract
+ base class) that are constructed from some library-defined set
+ of primitives that often include conversions from free
+ function pointers and member function pointers, and a limited
+ set of binding capabilities. Such an approach is reasonably
+ simple and cover most common cases, but it does not allow a
+ large degree of flexibility in slot construction. Libraries
+ for function object composition have become quite advanced and
+ it is out of the scope of a signals and slots library to
+ encorporate such enhancements. Thus Boost.Signals does not
+ include argument binding or function object composition
+ primitives, but instead provides a hook (via the
+ <code class="computeroutput"><a href="../visit_each.html" title="Function template visit_each">visit_each</a></code>
+ mechanism) that allows existing binder/composition libraries
+ to provide the necessary information to Signals.</p></li>
+</ul></div>
+<p> Users not satisfied with the slot definition choice may opt
+ to replace the default slot function type with an alternative that
+ meets their specific needs.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1287920"></a>User-level Connection Management</h4></div></div></div>
+<p> Users need to have fine control over the connection of
+ signals to slots and their eventual disconnection. The approach
+ taken by Boost.Signals is to return a
+ <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> object that enables
+ connected/disconnected query, manual disconnection, and an
+ automatic disconnection on destruction mode. Some other possible
+ interfaces include:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><span class="bold"><strong>Pass slot to
+ disconnect</strong></span>: in this interface model, the
+ disconnection of a slot connected with
+ <code class="computeroutput">sig.<a href="../signalN.html#id733315-bb">connect</a>(slot)</code> is
+ performed via
+ <code class="computeroutput">sig.<a href="../signalN.html#id1180525-bb">disconnect</a>(slot)</code>. Internally,
+ a linear search using slot comparison is performed and the
+ slot, if found, is removed from the list. Unfortunately,
+ querying connectedness will generally also end up as
+ linear-time operations. This model also fails for
+ implementation reasons when slots become more complex than
+ simple function pointers, member function pointers and a
+ limited set of compositions and argument binders: to match the
+ slot given in the call to
+ <code class="computeroutput"><a href="../signalN.html#id1180525-bb">disconnect</a></code> with an
+ existing slot we would need to be able to compare arbitrary
+ function objects, which is not feasible.</p></li>
+<li>
+<p><span class="bold"><strong>Pass a token to
+ disconnect</strong></span>: this approach identifies slots with a
+ token that is easily comparable (e.g., a string), enabling
+ slots to be arbitrary function objects. While this approach is
+ essentially equivalent to the approach taken by Boost.Signals,
+ it is possibly more error-prone for several reasons:</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>Connections and disconnections must be paired, so
+ the problem becomes similar to the problems incurred when
+ pairing <code class="computeroutput">new</code> and <code class="computeroutput">delete</code> for
+ dynamic memory allocation. While errors of this sort would
+ not be catastrophic for a signals and slots
+ implementation, their detection is generally
+ nontrivial.</p></li>
+<li><p>Tokens must be unique, otherwise two slots will have
+ the same name and will be indistinguishable. In
+ environments where many connections will be made
+ dynamically, name generation becomes an additional task
+ for the user. Uniqueness of tokens also results in an
+ additional failure mode when attempting to connect a slot
+ using a token that has already been used.</p></li>
+<li><p>More parameterization would be required, because the
+ token type must be user-defined. Additional
+ parameterization steepens the learning curver and
+ overcomplicates a simple interface.</p></li>
+</ul></div>
+<p> This type of interface is supported in Boost.Signals
+ via the slot grouping mechanism. It augments the
+ <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> object-based
+ connection management scheme.</p>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1288058"></a>Combiner Interface</h4></div></div></div>
+<p> The Combiner interface was chosen to mimic a call to an
+ algorithm in the C++ standard library. It is felt that by viewing
+ slot call results as merely a sequence of values accessed by input
+ iterators, the combiner interface would be most natural to a
+ proficient C++ programmer. Competing interface design generally
+ required the combiners to be constructed to conform to an
+ interface that would be customized for (and limited to) the
+ Signals library. While these interfaces are generally enable more
+ straighforward implementation of the signals &amp; slots
+ libraries, the combiners are unfortunately not reusable (either in
+ other signals &amp; slots libraries or within other generic
+ algorithms), and the learning curve is steepened slightly to learn
+ the specific combiner interface.</p>
+<p> The Signals formulation of combiners is based on the
+ combiner using the "pull" mode of communication, instead of the
+ more complex "push" mechanism. With a "pull" mechanism, the
+ combiner's state can be kept on the stack and in the program
+ counter, because whenever new data is required (i.e., calling the
+ next slot to retrieve its return value), there is a simple
+ interface to retrieve that data immediately and without returning
+ from the combiner's code. Contrast this with the "push" mechanism,
+ where the combiner must keep all state in class members because
+ the combiner's routines will be invoked for each signal
+ called. Compare, for example, a combiner that returns the maximum
+ element from calling the slots. If the maximum element ever
+ exceeds 100, no more slots are to be called.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left"><p>Pull</p></th>
+<th align="left"><p>Push</p></th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+struct pull_max {
+ typedef int result_type;
+
+ template&lt;typename InputIterator&gt;
+ result_type operator()(InputIterator first,
+ InputIterator last)
+ {
+ if (first == last)
+ throw std::runtime_error("Empty!");
+
+ int max_value = *first++;
+ while(first != last &amp;&amp; *first &lt;= 100) {
+ if (*first &gt; max_value)
+ max_value = *first;
+ ++first;
+ }
+
+ return max_value;
+ }
+};
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+struct push_max {
+ typedef int result_type;
+
+ push_max() : max_value(), got_first(false) {}
+
+ // returns false when we want to stop
+ bool operator()(int result) {
+ if (result &gt; 100)
+ return false;
+
+ if (!got_first) {
+ got_first = true;
+ max_value = result;
+ return true;
+ }
+
+ if (result &gt; max_value)
+ max_value = result;
+
+ return true;
+ }
+
+ int get_value() const
+ {
+ if (!got_first)
+ throw std::runtime_error("Empty!");
+ return max_value;
+ }
+
+private:
+ int max_value;
+ bool got_first;
+};
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>There are several points to note in these examples. The
+ "pull" version is a reusable function object that is based on an
+ input iterator sequence with an integer <code class="computeroutput">value_type</code>,
+ and is very straightforward in design. The "push" model, on the
+ other hand, relies on an interface specific to the caller and is
+ not generally reusable. It also requires extra state values to
+ determine, for instance, if any elements have been
+ received. Though code quality and ease-of-use is generally
+ subjective, the "pull" model is clearly shorter and more reusable
+ and will often be construed as easier to write and understand,
+ even outside the context of a signals &amp; slots library.</p>
+<p> The cost of the "pull" combiner interface is paid in the
+ implementation of the Signals library itself. To correctly handle
+ slot disconnections during calls (e.g., when the dereference
+ operator is invoked), one must construct the iterator to skip over
+ disconnected slots. Additionally, the iterator must carry with it
+ the set of arguments to pass to each slot (although a reference to
+ a structure containing those arguments suffices), and must cache
+ the result of calling the slot so that multiple dereferences don't
+ result in multiple calls. This apparently requires a large degree
+ of overhead, though if one considers the entire process of
+ invoking slots one sees that the overhead is nearly equivalent to
+ that in the "push" model, but we have inverted the control
+ structures to make iteration and dereference complex (instead of
+ making combiner state-finding complex).</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1288110"></a>Connection Interfaces: += operator</h4></div></div></div>
+<p> Boost.Signals supports a connection syntax with the form
+ <code class="computeroutput">sig.<a href="../signalN.html#id733315-bb">connect</a>(slot)</code>, but a
+ more terse syntax <code class="computeroutput">sig += slot</code> has been suggested (and
+ has been used by other signals &amp; slots implementations). There
+ are several reasons as to why this syntax has been
+ rejected:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><span class="bold"><strong>It's unnecessary</strong></span>: the
+ connection syntax supplied by Boost.Signals is no less
+ powerful that that supplied by the <code class="computeroutput">+=</code>
+ operator. The savings in typing (<code class="computeroutput">connect()</code>
+ vs. <code class="computeroutput">+=</code>) is essentially negligible. Furthermore,
+ one could argue that calling <code class="computeroutput">connect()</code> is more
+ readable than an overload of <code class="computeroutput">+=</code>.</p></li>
+<li><p><span class="bold"><strong>Ambiguous return type</strong></span>:
+ there is an ambiguity concerning the return value of the
+ <code class="computeroutput">+=</code> operation: should it be a reference to the
+ signal itself, to enable <code class="computeroutput">sig += slot1 += slot2</code>,
+ or should it return a
+ <code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> for the
+ newly-created signal/slot connection?</p></li>
+<li>
+<p><span class="bold"><strong>Gateway to operators -=,
+ +</strong></span>: when one has added a connection operator
+ <code class="computeroutput">+=</code>, it seems natural to have a disconnection
+ operator <code class="computeroutput">-=</code>. However, this presents problems when
+ the library allows arbitrary function objects to implicitly
+ become slots, because slots are no longer comparable. </p>
+<p> The second obvious addition when one has
+ <code class="computeroutput">operator+=</code> would be to add a <code class="computeroutput">+</code>
+ operator that supports addition of multiple slots, followed by
+ assignment to a signal. However, this would require
+ implementing <code class="computeroutput">+</code> such that it can accept any two
+ function objects, which is technically infeasible.</p>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1288264"></a><code class="computeroutput">trackable</code> rationale</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s06.html#id1288301"><code class="computeroutput">trackable</code> copying behavior</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288354">Why derivation from <code class="computeroutput">trackable</code>?</a></span></dt>
+</dl></div>
+<p> The <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code>
+ class is the primary user interface to automatic connection
+ lifetime management, and its design affects users directly. Two
+ issues stick out most: the odd copying behavior of
+ <code class="computeroutput">trackable</code>, and the limitation requiring users to
+ derive from <code class="computeroutput">trackable</code> to create types that can
+ participate in automatic connection management.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1288301"></a><code class="computeroutput">trackable</code> copying behavior</h5></div></div></div>
+<p> The copying behavior of
+ <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> is essentially
+ that <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> subobjects
+ are never copied; instead, the copy operation is merely a
+ no-op. To understand this, we look at the nature of a
+ signal-slot connection and note that the connection is based on
+ the entities that are being connected; when one of the entities
+ is destroyed, the connection is destroyed. Therefore, when a
+ <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> subobject is
+ copied, we cannot copy the connections because the connections
+ don't refer to the target entity - they refer to the source
+ entity. This reason is dual to the reason signals are
+ noncopyable: the slots connected to them are connected to that
+ particular signal, not the data contained in the signal.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1288354"></a>Why derivation from <code class="computeroutput">trackable</code>?</h5></div></div></div>
+<p> For <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> to work
+ properly, there are two constraints:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> must
+ have storage space to keep track of all connections made to
+ this object.</p></li>
+<li><p><code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> must be
+ notified when the object is being destructed so that it can
+ disconnect its connections.</p></li>
+</ul></div>
+<p>Clearly, deriving from
+ <code class="computeroutput"><a href="../trackable.html" title="Class trackable">trackable</a></code> meets these two
+ guidelines. We have not yet found a superior solution.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1288419"></a>Comparison with other Signal/Slot implementations</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="s06.html#id1288424">libsigc++</a></span></dt>
+<dt><span class="section"><a href="s06.html#id1288466">.NET delegates</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1288424"></a>libsigc++</h5></div></div></div>
+<p><a href="http://libsigc.sourceforge.net" target="_top">libsigc++</a> is a C++
+ signals &amp; slots library that originally started as part of
+ an initiative to wrap the C interfaces to <a href="http://www.gtk.org" target="_top">GTK</a> libraries in C++, and has
+ grown to be a separate library maintained by Karl Nelson. There
+ are many similarities between libsigc++ and Boost.Signals, and
+ indeed Boost.Signals was strongly influenced by Karl Nelson and
+ libsigc++. A cursory inspection of each library will find a
+ similar syntax for the construction of signals and in the use of
+ connections and automatic connection lifetime management. There
+ are some major differences in design that separate these
+ libraries:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><span class="bold"><strong>Slot definitions</strong></span>:
+ slots in libsigc++ are created using a set of primitives
+ defined by the library. These primitives allow binding of
+ objects (as part of the library), explicit adaptation from
+ the argument and return types of the signal to the argument
+ and return types of the slot (libsigc++ is, by default, more
+ strict about types than Boost.Signals). A discussion of this
+ approach with a comparison against the approach taken by
+ Boost.Signals is given in Choice of Slot Definitions.</p></li>
+<li><p><span class="bold"><strong>Combiner/Marshaller
+ interface</strong></span>: the equivalent to Boost.Signals
+ combiners in libsigc++ are the marshallers. Marshallers are
+ similar to the "push" interface described in Combiner
+ Interface, and a proper treatment of the topic is given
+ there.</p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1288466"></a>.NET delegates</h5></div></div></div>
+<p><a href="http://www.microsoft.com" target="_top">Microsoft</a>
+ has introduced the .NET Framework and an associated set of
+ languages and language extensions, one of which is the
+ delegate. Delegates are similar to signals and slots, but they
+ are more limited than most C++ signals and slots implementations
+ in that they:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Require exact type matches between a delegate and what
+ it is calling.</p></li>
+<li><p>Only return the result of the last target called, with no option for customization.</p></li>
+<li><p>Must call a method with <code class="computeroutput">this</code> already
+ bound.</p></li>
+</ul></div>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 20, 2004 at 17:03:55 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s05.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="tests.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals/tests.html b/doc/html/signals/tests.html
new file mode 100644
index 0000000000..c53e0b2663
--- /dev/null
+++ b/doc/html/signals/tests.html
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Testsuite</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="s06.html" title="Design Rationale">
+<link rel="next" href="../boost_staticassert.html" title="Chapter 10. Boost.StaticAssert">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="../boost_staticassert.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="signals.tests"></a>Testsuite</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="tests.html#id1288509">Acceptance tests</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1288509"></a>Acceptance tests</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Test</th>
+<th>Type</th>
+<th>Description</th>
+<th>If failing...</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p><a href="../../../libs/signals/test/dead_slot_test.cpp" target="_top">dead_slot_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Ensure that calling <code class="computeroutput">connect</code> with a slot
+that has already been disconnected via deletion does not actually
+connect to the slot.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/signals/test/deletion_test.cpp" target="_top">deletion_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test deletion of slots.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/signals/test/ordering_test.cpp" target="_top">ordering_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test slot group ordering.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/signals/test/signal_n_test.cpp" target="_top">signal_n_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Basic test of signal/slot connections and invocation using the
+<code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signalN</a></code> class templates.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/signals/test/signal_test.cpp" target="_top">signal_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Basic test of signal/slot connections and invocation using the
+<code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code> class template.</p></td>
+<td><p>The <code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code> class template may not
+be usable on your compiler. However, the
+<code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signalN</a></code> class templates may still be
+usable.</p></td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/signals/test/trackable_test.cpp" target="_top">trackable_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test automatic lifetime management using
+ <code class="computeroutput">boost::trackable</code> objects.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s06.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="../boost_staticassert.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/signals/tutorial.html b/doc/html/signals/tutorial.html
new file mode 100644
index 0000000000..82c15f7352
--- /dev/null
+++ b/doc/html/signals/tutorial.html
@@ -0,0 +1,1102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="prev" href="../signals.html" title="Chapter 9. Boost.Signals">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../signals.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="reference.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="signals.tutorial"></a>Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1279986">How to Read this Tutorial</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280044">Compatibility Note</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280117">Hello, World! (Beginner)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280248">Calling multiple slots</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280595">Passing values to and from slots</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281385">Connection Management</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1282050">Example: Document-View</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1282163">Linking against the Signals library</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1279986"></a>How to Read this Tutorial</h4></div></div></div>
+<p>This tutorial is not meant to be read linearly. Its top-level
+structure roughly separates different concepts in the library
+(e.g., handling calling multiple slots, passing values to and from
+slots) and in each of these concepts the basic ideas are presented
+first and then more complex uses of the library are described
+later. Each of the sections is marked <span class="emphasis"><em>Beginner</em></span>,
+<span class="emphasis"><em>Intermediate</em></span>, or <span class="emphasis"><em>Advanced</em></span> to help guide the
+reader. The <span class="emphasis"><em>Beginner</em></span> sections include information that all
+library users should know; one can make good use of the Signals
+library after having read only the <span class="emphasis"><em>Beginner</em></span> sections. The
+<span class="emphasis"><em>Intermediate</em></span> sections build on the <span class="emphasis"><em>Beginner</em></span>
+sections with slightly more complex uses of the library. Finally,
+the <span class="emphasis"><em>Advanced</em></span> sections detail very advanced uses of the
+Signals library, that often require a solid working knowledge of
+the <span class="emphasis"><em>Beginner</em></span> and <span class="emphasis"><em>Intermediate</em></span> topics; most users
+will not need to read the <span class="emphasis"><em>Advanced</em></span> sections.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1280044"></a>Compatibility Note</h4></div></div></div>
+<p>Boost.Signals has two syntactical forms: the preferred form and
+the compatibility form. The preferred form fits more closely with the
+C++ language and reduces the number of separate template parameters
+that need to be considered, often improving readability; however, the
+preferred form is not supported on all platforms due to compiler
+bugs. The compatible form will work on all compilers supported by
+Boost.Signals. Consult the table below to determine which syntactic
+form to use for your compiler. Users of Boost.Function, please note
+that the preferred syntactic form in Signals is equivalent to that of
+Function's preferred syntactic form.</p>
+<p>If your compiler does not appear in this list, please try the
+preferred syntax and report your results to the Boost list so that
+we can keep this table up-to-date.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><div class="itemizedlist"><ul type="disc">
+<li><p>GNU C++ 2.95.x, 3.0.x, 3.1.x</p></li>
+<li><p>Comeau C++ 4.2.45.2</p></li>
+<li><p>SGI MIPSpro 7.3.0</p></li>
+<li><p>Intel C++ 5.0, 6.0</p></li>
+<li><p>Compaq's cxx 6.2</p></li>
+<li><p>Microsoft Visual C++ 7.1</p></li>
+</ul></div></td>
+<td align="left"><div class="itemizedlist"><ul type="disc">
+<li><p><span class="emphasis"><em>Any compiler supporting the preferred syntax</em></span></p></li>
+<li><p>Microsoft Visual C++ 6.0, 7.0</p></li>
+<li><p>Borland C++ 5.5.1</p></li>
+<li><p>Sun WorkShop 6 update 2 C++ 5.3</p></li>
+<li><p>Metrowerks CodeWarrior 8.1</p></li>
+</ul></div></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1280117"></a>Hello, World! (Beginner)</h4></div></div></div>
+<p>The following example writes "Hello, World!" using signals and
+slots. First, we create a signal <code class="computeroutput">sig</code>, a signal that
+takes no arguments and has a void return value. Next, we connect
+the <code class="computeroutput">hello</code> function object to the signal using the
+<code class="computeroutput">connect</code> method. Finally, use the signal
+<code class="computeroutput">sig</code> like a function to call the slots, which in turns
+invokes <code class="computeroutput">HelloWorld::operator()</code> to print "Hello,
+World!".</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+struct HelloWorld
+{
+ void operator()() const
+ {
+ std::cout &lt;&lt; "Hello, World!" &lt;&lt; std::endl;
+ }
+};
+
+// ...
+
+// Signal with no arguments and a void return value
+<code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;void ()&gt; sig;
+
+// Connect a HelloWorld slot
+HelloWorld hello;
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(hello);
+
+// Call all of the slots
+sig();
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+struct HelloWorld
+{
+ void operator()() const
+ {
+ std::cout &lt;&lt; "Hello, World!" &lt;&lt; std::endl;
+ }
+};
+
+// ...
+
+// Signal with no arguments and a void return value
+<code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal0</a></code>&lt;void&gt; sig;
+
+// Connect a HelloWorld slot
+HelloWorld hello;
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(hello);
+
+// Call all of the slots
+sig();
+</pre></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1280248"></a>Calling multiple slots</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1280252">Connecting multiple slots (Beginner)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280404">Ordering slot call groups (Intermediate)</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1280252"></a>Connecting multiple slots (Beginner)</h5></div></div></div>
+<p>Calling a single slot from a signal isn't very interesting, so
+we can make the Hello, World program more interesting by splitting
+the work of printing "Hello, World!" into two completely separate
+slots. The first slot will print "Hello" and may look like
+this:</p>
+<pre class="programlisting">
+struct Hello
+{
+ void operator()() const
+ {
+ std::cout &lt;&lt; "Hello";
+ }
+};
+</pre>
+<p>The second slot will print ", World!" and a newline, to complete
+the program. The second slot may look like this:</p>
+<pre class="programlisting">
+struct World
+{
+ void operator()() const
+ {
+ std::cout &lt;&lt; ", World!" &lt;&lt; std::endl;
+ }
+};
+</pre>
+<p>Like in our previous example, we can create a signal
+<code class="computeroutput">sig</code> that takes no arguments and has a
+<code class="computeroutput">void</code> return value. This time, we connect both a
+<code class="computeroutput">hello</code> and a <code class="computeroutput">world</code> slot to the same
+signal, and when we call the signal both slots will be called.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;void ()&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(Hello());
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(World());
+
+sig();
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal0</a></code>&lt;void&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(Hello());
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(World());
+
+sig();
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>By default, slots are called in first-in first-out (FIFO) order,
+so the output of this program will be as expected:</p>
+<pre class="programlisting">
+Hello, World!
+</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1280404"></a>Ordering slot call groups (Intermediate)</h5></div></div></div>
+<p>Slots are free to have side effects, and that can mean that some
+slots will have to be called before others even if they are not connected in that order. The Boost.Signals
+library allows slots to be placed into groups that are ordered in
+some way. For our Hello, World program, we want "Hello" to be
+printed before ", World!", so we put "Hello" into a group that must
+be executed before the group that ", World!" is in. To do this, we
+can supply an extra parameter at the beginning of the
+<code class="computeroutput">connect</code> call that specifies the group. Group values
+are, by default, <code class="computeroutput">int</code>s, and are ordered by the integer
+&lt; relation. Here's how we construct Hello, World:</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;void ()&gt; sig;
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(1, World());
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(0, Hello());
+sig();
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal0</a></code>&lt;void&gt; sig;
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(1, World());
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(0, Hello());
+sig();
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>This program will correctly print "Hello, World!", because the
+<code class="computeroutput">Hello</code> object is in group 0, which precedes group 1 where
+the <code class="computeroutput">World</code> object resides. The group
+parameter is, in fact, optional. We omitted it in the first Hello,
+World example because it was unnecessary when all of the slots are
+independent. So what happens if we mix calls to connect that use the
+group parameter and those that don't? The "unnamed" slots (i.e., those
+that have been connected without specifying a group name) can be
+placed at the front or back of the slot list (by passing
+<code class="computeroutput">boost::signals::at_front</code> or <code class="computeroutput">boost::signals::at_back</code>
+as the last parameter to <code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>, respectively), and defaults to the end of the list. When
+a group is specified, the final parameter describes where the slot
+will be placed within the group ordering. If we add a new slot
+to our example like this:</p>
+<pre class="programlisting">
+struct GoodMorning
+{
+ void operator()() const
+ {
+ std::cout &lt;&lt; "... and good morning!" &lt;&lt; std::endl;
+ }
+};
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(GoodMorning());
+</pre>
+<p>... we will get the result we wanted:</p>
+<pre class="programlisting">
+Hello, World!
+... and good morning!
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1280595"></a>Passing values to and from slots</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1280599">Slot Arguments (Beginner)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1280813">Signal Return Values (Advanced)</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1280599"></a>Slot Arguments (Beginner)</h5></div></div></div>
+<p>Signals can propagate arguments to each of the slots they call.
+For instance, a signal that propagates mouse motion events might
+want to pass along the new mouse coordinates and whether the mouse
+buttons are pressed.</p>
+<p>As an example, we'll create a signal that passes two
+<code class="computeroutput">float</code> arguments to its slots. Then we'll create a few
+slots that print the results of various arithmetic operations on
+these values.</p>
+<pre class="programlisting">
+void print_sum(float x, float y)
+{
+ std::cout &lt;&lt; "The sum is " &lt;&lt; x+y &lt;&lt; std::endl;
+}
+
+void print_product(float x, float y)
+{
+ std::cout &lt;&lt; "The product is " &lt;&lt; x*y &lt;&lt; std::endl;
+}
+
+void print_difference(float x, float y)
+{
+ std::cout &lt;&lt; "The difference is " &lt;&lt; x-y &lt;&lt; std::endl;
+}
+
+void print_quotient(float x, float y)
+{
+ std::cout &lt;&lt; "The quotient is " &lt;&lt; x/y &lt;&lt; std::endl;
+}
+</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;void (float, float)&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_difference);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_quotient);
+
+sig(5, 3);
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal2</a></code>&lt;void, float, float&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_difference);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;print_quotient);
+
+sig(5, 3);
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>This program will print out the following:</p>
+<pre class="programlisting">
+The sum is 8
+The difference is 2
+The product is 15
+The quotient is 1.66667
+</pre>
+<p>So any values that are given to <code class="computeroutput">sig</code> when it is
+called like a function are passed to each of the slots. We have to
+declare the types of these values up front when we create the
+signal. The type <code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a>&lt;void (float,
+float)&gt;</code> means that the signal has a <code class="computeroutput">void</code>
+return value and takes two <code class="computeroutput">float</code> values. Any slot
+connected to <code class="computeroutput">sig</code> must therefore be able to take two
+<code class="computeroutput">float</code> values.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1280813"></a>Signal Return Values (Advanced)</h5></div></div></div>
+<p>Just as slots can receive arguments, they can also return
+values. These values can then be returned back to the caller of the
+signal through a <em class="firstterm">combiner</em>. The combiner is a mechanism
+that can take the results of calling slots (there many be no
+results or a hundred; we don't know until the program runs) and
+coalesces them into a single result to be returned to the caller.
+The single result is often a simple function of the results of the
+slot calls: the result of the last slot call, the maximum value
+returned by any slot, or a container of all of the results are some
+possibilities.</p>
+<p>We can modify our previous arithmetic operations example
+slightly so that the slots all return the results of computing the
+product, quotient, sum, or difference. Then the signal itself can
+return a value based on these results to be printed:</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+float product(float x, float y) { return x*y; }
+float quotient(float x, float y) { return x/y; }
+float sum(float x, float y) { return x+y; }
+float difference(float x, float y) { return x-y; }
+
+<code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;float (float x, float y)&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;quotient);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;difference);
+
+std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+float product(float x, float y) { return x*y; }
+float quotient(float x, float y) { return x/y; }
+float sum(float x, float y) { return x+y; }
+float difference(float x, float y) { return x-y; }
+
+<code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal2</a></code>&lt;float, float, float&gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;quotient);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;difference);
+
+std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>This example program will output <code class="computeroutput">2</code>. This is because the
+default behavior of a signal that has a return type
+(<code class="computeroutput">float</code>, the first template argument given to the
+<code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code> class template) is to call all slots and
+then return the result returned by the last slot called. This
+behavior is admittedly silly for this example, because slots have
+no side effects and the result is the last slot connect.</p>
+<p>A more interesting signal result would be the maximum of the
+values returned by any slot. To do this, we create a custom
+combiner that looks like this:</p>
+<pre class="programlisting">
+template&lt;typename T&gt;
+struct maximum
+{
+ typedef T result_type;
+
+ template&lt;typename InputIterator&gt;
+ T operator()(InputIterator first, InputIterator last) const
+ {
+ // If there are no slots to call, just return the
+ // default-constructed value
+ if (first == last)
+ return T();
+
+ T max_value = *first++;
+ while (first != last) {
+ if (max_value &lt; *first)
+ max_value = *first;
+ ++first;
+ }
+
+ return max_value;
+ }
+};
+</pre>
+<p>The <code class="computeroutput">maximum</code> class template acts as a function
+object. Its result type is given by its template parameter, and
+this is the type it expects to be computing the maximum based on
+(e.g., <code class="computeroutput">maximum&lt;float&gt;</code> would find the maximum
+<code class="computeroutput">float</code> in a sequence of <code class="computeroutput">float</code>s). When a
+<code class="computeroutput">maximum</code> object is invoked, it is given an input
+iterator sequence <code class="computeroutput">[first, last)</code> that includes the
+results of calling all of the slots. <code class="computeroutput">maximum</code> uses this
+input iterator sequence to calculate the maximum element, and
+returns that maximum value.</p>
+<p>We actually use this new function object type by installing it
+as a combiner for our signal. The combiner template argument
+follows the signal's calling signature:</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;float (float x, float y),
+ maximum&lt;float&gt; &gt; sig;
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal2</a></code>&lt;float, float, float,
+ maximum&lt;float&gt; &gt; sig;
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>Now we can connect slots that perform arithmetic functions and
+use the signal:</p>
+<pre class="programlisting">
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;quotient);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;difference);
+
+std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
+</pre>
+<p>The output of this program will be <code class="computeroutput">15</code>, because
+regardless of the order in which the slots are connected, the product
+of 5 and 3 will be larger than the quotient, sum, or
+difference.</p>
+<p>In other cases we might want to return all of the values
+computed by the slots together, in one large data structure. This
+is easily done with a different combiner:</p>
+<pre class="programlisting">
+template&lt;typename Container&gt;
+struct aggregate_values
+{
+ typedef Container result_type;
+
+ template&lt;typename InputIterator&gt;
+ Container operator()(InputIterator first, InputIterator last) const
+ {
+ return Container(first, last);
+ }
+};
+</pre>
+<p>
+Again, we can create a signal with this new combiner:
+</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signal.html" title="Class template signal">boost::signal</a></code>&lt;float (float, float),
+ aggregate_values&lt;std::vector&lt;float&gt; &gt; &gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;quotient);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;difference);
+
+std::vector&lt;float&gt; results = sig(5, 3);
+std::copy(results.begin(), results.end(),
+ std::ostream_iterator&lt;float&gt;(cout, " "));
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal2</a></code>&lt;float, float, float,
+ aggregate_values&lt;std::vector&lt;float&gt; &gt; &gt; sig;
+
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;quotient);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;product);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;sum);
+sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(&amp;difference);
+
+std::vector&lt;float&gt; results = sig(5, 3);
+std::copy(results.begin(), results.end(),
+ std::ostream_iterator&lt;float&gt;(cout, " "));
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>The output of this program will contain 15, 8, 1.6667, and 2. It
+is interesting here that
+the first template argument for the <code class="computeroutput">signal</code> class,
+<code class="computeroutput">float</code>, is not actually the return type of the signal.
+Instead, it is the return type used by the connected slots and will
+also be the <code class="computeroutput">value_type</code> of the input iterators passed
+to the combiner. The combiner itself is a function object and its
+<code class="computeroutput">result_type</code> member type becomes the return type of the
+signal.</p>
+<p>The input iterators passed to the combiner transform dereference
+operations into slot calls. Combiners therefore have the option to
+invoke only some slots until some particular criterion is met. For
+instance, in a distributed computing system, the combiner may ask
+each remote system whether it will handle the request. Only one
+remote system needs to handle a particular request, so after a
+remote system accepts the work we do not want to ask any other
+remote systems to perform the same task. Such a combiner need only
+check the value returned when dereferencing the iterator, and
+return when the value is acceptable. The following combiner returns
+the first non-NULL pointer to a <code class="computeroutput">FulfilledRequest</code> data
+structure, without asking any later slots to fulfill the
+request:</p>
+<pre class="programlisting">
+struct DistributeRequest {
+ typedef FulfilledRequest* result_type;
+
+ template&lt;typename InputIterator&gt;
+ result_type operator()(InputIterator first, InputIterator last) const
+ {
+ while (first != last) {
+ if (result_type fulfilled = *first)
+ return fulfilled;
+ ++first;
+ }
+ return 0;
+ }
+};
+</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1281385"></a>Connection Management</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1281392">Disconnecting Slots (Beginner)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281507">Blocking Slots (Beginner)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281581">Scoped connections (Intermediate)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281625">Disconnecting equivalent slots (Intermediate)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281686">Automatic connection management (Intermediate)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281857">When can disconnections occur? (Intermediate)</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1281918">Passing slots (Intermediate)</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281392"></a>Disconnecting Slots (Beginner)</h5></div></div></div>
+<p>Slots aren't expected to exist indefinately after they are
+connected. Often slots are only used to receive a few events and
+are then disconnected, and the programmer needs control to decide
+when a slot should no longer be connected.</p>
+<p>The entry point for managing connections explicitly is the
+<code class="computeroutput"><a href="../connection.html" title="Class connection">boost::signals::connection</a></code> class. The
+<code class="computeroutput"><a href="../connection.html" title="Class connection">connection</a></code> class uniquely represents the connection
+between a particular signal and a particular slot. The
+<code class="computeroutput"><a href="../connection.html#id727081-bb">connected</a>()</code> method checks if the signal and slot are
+still connected, and the <code class="computeroutput"><a href="../connection.html#id696947-bb">disconnect()</a></code> method
+disconnects the signal and slot if they are connected before it is
+called. Each call to the signal's <code class="computeroutput">connect()</code> method
+returns a connection object, which can be used to determine if the
+connection still exists or to disconnect the signal and slot.</p>
+<pre class="programlisting">
+boost::signals::connection c = sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(HelloWorld());
+if (c.<code class="computeroutput">connected</code>()) {
+<span class="emphasis"><em>// c is still connected to the signal</em></span>
+ sig(); <span class="emphasis"><em>// Prints "Hello, World!"</em></span>
+}
+
+c.disconnect(); <span class="emphasis"><em>// Disconnect the HelloWorld object</em></span>
+assert(!c.<code class="computeroutput">connected</code>()); <span class="emphasis"><em>c isn't connected any more</em></span>
+
+sig(); <span class="emphasis"><em>// Does nothing: there are no connected slots</em></span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281507"></a>Blocking Slots (Beginner)</h5></div></div></div>
+<p>Slots can be temporarily "blocked", meaning that they will be
+ignored when the signal is invoked but have not been disconnected. The
+<code class="computeroutput">block</code> member function
+temporarily blocks a slot, which can be unblocked via
+<code class="computeroutput">unblock</code>. Here is an example of
+blocking/unblocking slots:</p>
+<pre class="programlisting">
+boost::signals::connection c = sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(HelloWorld());
+sig(); <span class="emphasis"><em>// Prints "Hello, World!"</em></span>
+
+c.<code class="computeroutput">block</code>(); <span class="emphasis"><em>// block the slot</em></span>
+assert(c.<code class="computeroutput">blocked</code>());
+sig(); <span class="emphasis"><em>// No output: the slot is blocked</em></span>
+
+c.<code class="computeroutput">unblock</code>(); <span class="emphasis"><em>// unblock the slot</em></span>
+sig(); <span class="emphasis"><em>// Prints "Hello, World!"</em></span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281581"></a>Scoped connections (Intermediate)</h5></div></div></div>
+<p>The <code class="computeroutput">boost::signals::scoped_connection</code> class
+references a signal/slot connection that will be disconnected when
+the <code class="computeroutput">scoped_connection</code> class goes out of scope. This
+ability is useful when a connection need only be temporary,
+e.g.,</p>
+<pre class="programlisting">
+{
+ boost::signals::scoped_connection c = sig.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(ShortLived());
+ sig(); <span class="emphasis"><em>// will call ShortLived function object</em></span>
+}
+sig(); <span class="emphasis"><em>// ShortLived function object no longer connected to sig</em></span></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281625"></a>Disconnecting equivalent slots (Intermediate)</h5></div></div></div>
+<p>One can disconnect slots that are equivalent to a given function
+object using a form of the
+<code class="computeroutput"><a href="../signalN.html#id1180525-bb">disconnect</a></code> method, so long as
+the type of the function object has an accessible <code class="computeroutput">==</code>
+operator. For instance:
+
+</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+void foo();
+void bar();
+
+signal&lt;void()&gt; sig;
+
+sig.connect(&amp;foo);
+sig.connect(&amp;bar);
+
+// disconnects foo, but not bar
+sig.disconnect(&amp;foo);
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+void foo();
+void bar();
+
+signal0&lt;void&gt; sig;
+
+sig.connect(&amp;foo);
+sig.connect(&amp;bar);
+
+// disconnects foo, but not bar
+sig.disconnect(&amp;foo);
+</pre></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281686"></a>Automatic connection management (Intermediate)</h5></div></div></div>
+<p>Boost.Signals can automatically track the lifetime of objects
+involved in signal/slot connections, including automatic
+disconnection of slots when objects involved in the slot call are
+destroyed. For instance, consider a simple news delivery service,
+where clients connect to a news provider that then sends news to
+all connected clients as information arrives. The news delivery
+service may be constructed like this: </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+class NewsItem { /* ... */ };
+
+boost::signal&lt;void (const NewsItem&amp;)&gt; deliverNews;
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+class NewsItem { /* ... */ };
+
+boost::signal1&lt;void, const NewsItem&amp;&gt; deliverNews;
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>Clients that wish to receive news updates need only connect a
+function object that can receive news items to the
+<code class="computeroutput">deliverNews</code> signal. For instance, we may have a
+special message area in our application specifically for news,
+e.g.,:</p>
+<pre class="programlisting">
+struct NewsMessageArea : public MessageArea
+{
+public:
+ // ...
+
+ void displayNews(const NewsItem&amp; news) const
+ {
+ messageText = news.text();
+ update();
+ }
+};
+
+// ...
+NewsMessageArea newsMessageArea = new NewsMessageArea(/* ... */);
+// ...
+deliverNews.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(boost::bind(&amp;NewsMessageArea::displayNews,
+ newsMessageArea, _1));
+</pre>
+<p>However, what if the user closes the news message area,
+destroying the <code class="computeroutput">newsMessageArea</code> object that
+<code class="computeroutput">deliverNews</code> knows about? Most likely, a segmentation
+fault will occur. However, with Boost.Signals one need only make
+<code class="computeroutput">NewsMessageArea</code><span class="emphasis"><em>trackable</em></span>, and the slot
+involving <code class="computeroutput">newsMessageArea</code> will be disconnected when
+<code class="computeroutput">newsMessageArea</code> is destroyed. The
+<code class="computeroutput">NewsMessageArea</code> class is made trackable by deriving
+publicly from the <code class="computeroutput">boost::signals::trackable</code> class,
+e.g.:</p>
+<pre class="programlisting">
+struct NewsMessageArea : public MessageArea, public boost::signals::trackable
+{
+ // ...
+};
+</pre>
+<p>At this time there is a significant limitation to the use of
+<code class="computeroutput">trackable</code> objects in making slot connections: function
+objects built using Boost.Bind are understood, such that pointers
+or references to <code class="computeroutput">trackable</code> objects passed to
+<code class="computeroutput">boost::bind</code> will be found and tracked.</p>
+<p><span class="bold"><strong>Warning</strong></span>: User-defined function objects and function
+objects from other libraries (e.g., Boost.Function or Boost.Lambda)
+do not implement the required interfaces for <code class="computeroutput">trackable</code>
+object detection, and <span class="emphasis"><em>will silently ignore any bound trackable
+objects</em></span>. Future versions of the Boost libraries will address
+this limitation.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281857"></a>When can disconnections occur? (Intermediate)</h5></div></div></div>
+<p>Signal/slot disconnections occur when any of these conditions
+occur:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>The connection is explicitly disconnected via the connection's
+<code class="computeroutput">disconnect</code> method directly, or indirectly via the
+signal's <code class="computeroutput">disconnect</code> method or
+<code class="computeroutput">scoped_connection</code>'s destructor.</p></li>
+<li><p>A <code class="computeroutput">trackable</code> object bound to the slot is
+destroyed.</p></li>
+<li><p>The signal is destroyed.</p></li>
+</ul></div>
+<p>These events can occur at any time without disrupting a signal's
+calling sequence. If a signal/slot connection is disconnected at
+any time during a signal's calling sequence, the calling sequence
+will still continue but will not invoke the disconnected slot.
+Additionally, a signal may be destroyed while it is in a calling
+sequence, and which case it will complete its slot call sequence
+but may not be accessed directly.</p>
+<p>Signals may be invoked recursively (e.g., a signal A calls a
+slot B that invokes signal A...). The disconnection behavior does
+not change in the recursive case, except that the slot calling
+sequence includes slot calls for all nested invocations of the
+signal.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1281918"></a>Passing slots (Intermediate)</h5></div></div></div>
+<p>Slots in the Boost.Signals library are created from arbitrary
+function objects, and therefore have no fixed type. However, it is
+commonplace to require that slots be passed through interfaces that
+cannot be templates. Slots can be passed via the
+<code class="computeroutput">slot_type</code> for each particular signal type and any
+function object compatible with the signature of the signal can be
+passed to a <code class="computeroutput">slot_type</code> parameter. For instance:</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Preferred syntax</th>
+<th align="left">Portable syntax</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+class Button
+{
+ typedef boost::signal&lt;void (int x, int y)&gt; OnClick;
+
+public:
+ void doOnClick(const OnClick::slot_type&amp; slot);
+
+private:
+ OnClick onClick;
+};
+
+void Button::doOnClick(
+ const OnClick::slot_type&amp; slot
+ )
+{
+ onClick.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(slot);
+}
+
+void printCoordinates(long x, long y)
+{
+ std::cout &lt;&lt; "(" &lt;&lt; x &lt;&lt; ", " &lt;&lt; y &lt;&lt; ")\n";
+}
+
+void f(Button&amp; button)
+{
+ button.doOnClick(&amp;printCoordinates);
+}
+</pre></td>
+<td align="left"><pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
+class Button
+{
+ typedef <code class="computeroutput"><a href="../signalN.html" title="Class template signalN">boost::signal2</a></code>&lt;void,int,int&gt; OnClick;
+
+public:
+ void doOnClick(const OnClick::slot_type&amp; slot);
+
+private:
+ OnClick onClick;
+};
+
+void Button::doOnClick(
+ const OnClick::slot_type&amp; slot
+ )
+{
+ onClick.<code class="computeroutput"><a href="../signalN.html#id733315-bb">connect</a></code>(slot);
+}
+
+void printCoordinates(long x, long y)
+{
+ std::cout &lt;&lt; "(" &lt;&lt; x &lt;&lt; ", " &lt;&lt; y &lt;&lt; ")\n";
+}
+
+void f(Button&amp; button)
+{
+ button.doOnClick(&amp;printCoordinates);
+}
+</pre></td>
+</tr></tbody>
+</table></div>
+<p>The <code class="computeroutput">doOnClick</code> method is now functionally equivalent
+to the <code class="computeroutput">connect</code> method of the <code class="computeroutput">onClick</code>
+signal, but the details of the <code class="computeroutput">doOnClick</code> method can be
+hidden in an implementation detail file.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1282050"></a>Example: Document-View</h4></div></div></div>
+<p>Signals can be used to implement flexible Document-View
+ architectures. The document will contain a signal to which each of
+ the views can connect. The following <code class="computeroutput">Document</code> class
+ defines a simple text document that supports mulitple views. Note
+ that it stores a single signal to which all of the views will be
+ connected.</p>
+<pre class="programlisting">class Document
+{
+public:
+ typedef boost::signal&lt;void (bool)&gt; signal_t;
+ typedef boost::signals::connection connection_t;
+
+public:
+ Document()
+ {}
+
+ connection_t connect(signal_t::slot_function_type subscriber)
+ {
+ return m_sig.connect(subscriber);
+ }
+
+ void disconnect(connection_t subscriber)
+ {
+ subscriber.disconnect();
+ }
+
+ void append(const char* s)
+ {
+ m_text += s;
+ m_sig(true);
+ }
+
+ const std::string&amp; getText() const
+ {
+ return m_text;
+ }
+
+private:
+ signal_t m_sig;
+ std::string m_text;
+};</pre>
+<p>Next, we can define a <code class="computeroutput">View</code> base class from which
+ views can derive. This isn't strictly required, but it keeps the
+ Document-View logic separate from the logic itself. Note that the
+ constructor just connects the view to the document and the
+ destructor disconnects the view.</p>
+<pre class="programlisting">
+class View
+{
+public:
+ View(Document&amp; m)
+ : m_document(m)
+ {
+ m_connection = m_document.connect(boost::bind(&amp;View::refresh, this, _1));
+ }
+
+ virtual ~View()
+ {
+ m_document.disconnect(m_connection);
+ }
+
+ virtual void refresh(bool bExtended) const = 0;
+
+protected:
+ Document&amp; m_document;
+
+private:
+ Document::connection_t m_connection;
+};
+ </pre>
+<p>Finally, we can begin to define views. The
+ following <code class="computeroutput">TextView</code> class provides a simple view of the
+ document text.</p>
+<pre class="programlisting">class TextView : public View
+{
+public:
+ TextView(Document&amp; doc)
+ : View(doc)
+ {}
+
+ virtual void refresh(bool bExtended) const
+ {
+ std::cout &lt;&lt; "TextView: " &lt;&lt; m_document.getText() &lt;&lt; std::endl;
+ }
+};</pre>
+<p>Alternatively, we can provide a view of the document
+ translated into hex values using the <code class="computeroutput">HexView</code>
+ view:</p>
+<pre class="programlisting">class HexView : public View
+{
+public:
+ HexView(Document&amp; doc)
+ : View(doc)
+ {}
+
+ virtual void refresh(bool bExtended) const
+ {
+ const std::string&amp; s = m_document.getText();
+
+ std::cout &lt;&lt; "HexView:";
+
+ for (std::string::const_iterator it = s.begin(); it != s.end(); ++it)
+ std::cout &lt;&lt; ' ' &lt;&lt; std::hex &lt;&lt; static_cast&lt;int&gt;(*it);
+
+ std::cout &lt;&lt; std::endl;
+ }
+};</pre>
+<p>To tie the example together, here is a
+ simple <code class="computeroutput">main</code> function that sets up two views and then
+ modifies the document:</p>
+<pre class="programlisting">int main(int argc, char* argv[])
+{
+ Document doc;
+ TextView v1(doc);
+ HexView v2(doc);
+
+ doc.append(argc == 2 ? argv[1] : "Hello world!");
+ return 0;
+}</pre>
+<p>The complete example source, contributed by Keith MacDonald,
+ is available in <a href="../../../libs/signals/example/doc_view.cpp" target="_top"><code class="computeroutput">libs/signals/example/doc_view.cpp</code></a>.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1282163"></a>Linking against the Signals library</h4></div></div></div>
+<p>Part of the Boost.Signals library is compiled into a binary
+ library that must be linked into your application to use Signals. To
+ build this library, execute the command <span><strong class="command">bjam</strong></span> in
+ either the top-level Boost directory or in
+ <code class="computeroutput">libs/signals/build</code>. On Unix, the directory
+ <code class="computeroutput">libs/signals/build/bin-stage</code> will then contain
+ libraries named, e.g., <code class="computeroutput">libboost_signals.a</code> that can be
+ linked in your program with <code class="computeroutput">-lboost_signals</code>.</p>
+<p>On Windows, with Microsoft Visual C++ or Borland C++, the
+ linking process is nearly automatic. As with the
+ <a href="../../../libs/regex/index.html" target="_top">Regex</a> library, the libraries in
+ <code class="computeroutput">libs\signals\build\bin-stage</code> will have mangled names
+ and will be automatically be including in the link process. To link
+ against the Signals library binary dynamically (e.g., using the
+ Signals DLL), define <code class="computeroutput">BOOST_SIGNALS_DYN_LINK</code> when
+ building your application; to link statically, define
+ <code class="computeroutput">BOOST_SIGNALS_STATIC_LINK</code>. </p>
+</div>
+</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 18, 2005 at 16:09:34 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../signals.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../signals.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/simple_exception_policy.html b/doc/html/simple_exception_policy.html
new file mode 100644
index 0000000000..71cb62ad5e
--- /dev/null
+++ b/doc/html/simple_exception_policy.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template simple_exception_policy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id860535" title="Header &lt;boost/date_time/constrained_value.hpp&gt;">
+<link rel="prev" href="constrained_value.html" title="Class template constrained_value">
+<link rel="next" href="boost/date_time/date.html" title="Class template date">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="constrained_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id860535"><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="boost/date_time/date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="simple_exception_policy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template simple_exception_policy</span></h2>
+<p>boost::CV::simple_exception_policy &#8212; Template to shortcut the constrained_value policy creation process. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> rep_type, rep_type min_value, rep_type max_value,
+         <span class="bold"><strong>typename</strong></span> exception_type&gt;
+<span class="bold"><strong>class</strong></span> simple_exception_policy {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> rep_type value_type;
+
+  <span class="emphasis"><em>// <a href="simple_exception_policy.html#id1101590-bb">public static functions</a></em></span>
+  <span class="type">rep_type min</span> <a href="simple_exception_policy.html#id656662-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+  <span class="type">rep_type max</span> <a href="simple_exception_policy.html#id822112-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</a>() ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="simple_exception_policy.html#id866447-bb">on_error</a>(rep_type, rep_type, violation_enum) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1040286"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1040290"></a><h3>
+<a name="id1101590-bb"></a><code class="computeroutput">simple_exception_policy</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">rep_type min</span> <a name="id656662-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+<li><pre class="literallayout"><span class="type">rep_type max</span> <a name="id822112-bb"></a>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id866447-bb"></a>on_error(rep_type , rep_type , violation_enum ) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="constrained_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id860535"><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="boost/date_time/date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/simple_format.html b/doc/html/simple_format.html
new file mode 100644
index 0000000000..906b65b964
--- /dev/null
+++ b/doc/html/simple_format.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template simple_format</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1001696" title="Header &lt;boost/date_time/date_format_simple.hpp&gt;">
+<link rel="prev" href="date_input_facet.html" title="Class template date_input_facet">
+<link rel="next" href="id893464-bb.html" title="Class simple_format&lt;wchar_t&gt;">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_input_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1001696"><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="id893464-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="simple_format"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template simple_format</span></h2>
+<p>boost::date_time::simple_format &#8212; Class to provide simple basic formatting rules. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> simple_format {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="simple_format.html#id1046094-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="simple_format.html#id932375-bb">not_a_date</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="simple_format.html#id800361-bb">pos_infinity</a>() ;
+  <span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a href="simple_format.html#id859675-bb">neg_infinity</a>() ;
+  <span class="type">month_format_spec</span> <a href="simple_format.html#id1000701-bb">month_format</a>() ;
+  <span class="type">ymd_order_spec</span> <a href="simple_format.html#id901402-bb">date_order</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="simple_format.html#id939795-bb">has_date_sep_chars</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id971840-bb">year_sep_char</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id903587-bb">month_sep_char</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id870591-bb">day_sep_char</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id1041467-bb">hour_sep_char</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id1037379-bb">minute_sep_char</a>() ;
+  <span class="type">charT</span> <a href="simple_format.html#id685960-bb">second_sep_char</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1067792"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1067795"></a><h3>
+<a name="id1046094-bb"></a><code class="computeroutput">simple_format</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id932375-bb"></a>not_a_date() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id800361-bb"></a>pos_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> charT *</span> <a name="id859675-bb"></a>neg_infinity() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_format_spec</span> <a name="id1000701-bb"></a>month_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type">ymd_order_spec</span> <a name="id901402-bb"></a>date_order() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id939795-bb"></a>has_date_sep_chars() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id971840-bb"></a>year_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id903587-bb"></a>month_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id870591-bb"></a>day_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1041467-bb"></a>hour_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id1037379-bb"></a>minute_sep_char() ;</pre></li>
+<li><pre class="literallayout"><span class="type">charT</span> <a name="id685960-bb"></a>second_sep_char() ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1068038"></a><h3>Specializations</h3>
+<div class="itemizedlist"><ul type="disc"><li><p><a href="id893464-bb.html" title="Class simple_format&lt;wchar_t&gt;">Class simple_format&lt;wchar_t&gt;</a></p></li></ul></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_input_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1001696"><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="id893464-bb.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/simple_time_rep.html b/doc/html/simple_time_rep.html
new file mode 100644
index 0000000000..6075e19180
--- /dev/null
+++ b/doc/html/simple_time_rep.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct simple_time_rep</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id937109" title="Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;">
+<link rel="prev" href="id937125.html" title="Class time_duration">
+<link rel="next" href="posix_time_system_config.html" title="Class posix_time_system_config">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id937125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="posix_time_system_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="simple_time_rep"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct simple_time_rep</span></h2>
+<p>boost::posix_time::simple_time_rep &#8212; Simple implementation for the time rep. </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"><strong>struct</strong></span> simple_time_rep {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> gregorian::date date_type;         
+  <span class="bold"><strong>typedef</strong></span> <a href="id937125.html" title="Class time_duration">time_duration</a>   time_duration_type;
+
+  <span class="emphasis"><em>// <a href="simple_time_rep.html#simple_time_repconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="simple_time_rep.html#id791528-bb">simple_time_rep</a>(date_type, time_duration_type);
+
+  <span class="emphasis"><em>// <a href="simple_time_rep.html#id972076-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="simple_time_rep.html#id972081-bb">is_special</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="simple_time_rep.html#id1002303-bb">is_pos_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="simple_time_rep.html#id1002315-bb">is_neg_infinity</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="simple_time_rep.html#id833756-bb">is_not_a_date_time</a>() <span class="bold"><strong>const</strong></span>;
+
+  date_type day;
+  time_duration_type time_of_day;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1176049"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1176055"></a><h3>
+<a name="simple_time_repconstruct-copy-destruct"></a><code class="computeroutput">simple_time_rep</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id791528-bb"></a>simple_time_rep(date_type d, time_duration_type tod);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1176088"></a><h3>
+<a name="id972076-bb"></a><code class="computeroutput">simple_time_rep</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id972081-bb"></a>is_special() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1002303-bb"></a>is_pos_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1002315-bb"></a>is_neg_infinity() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id833756-bb"></a>is_not_a_date_time() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id937125.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id937109"><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="posix_time_system_config.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/slot.html b/doc/html/slot.html
new file mode 100644
index 0000000000..5b26ff4350
--- /dev/null
+++ b/doc/html/slot.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template slot</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id907390" title="Header &lt;boost/signals/slot.hpp&gt;">
+<link rel="prev" href="signal.html" title="Class template signal">
+<link rel="next" href="trackable.html" title="Class trackable">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id907390"><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="trackable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="slot"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template slot</span></h2>
+<p>boost::slot &#8212; Pass slots as function arguments.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SlotFunction&gt;
+<span class="bold"><strong>class</strong></span> slot {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="slot.html#slotconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Slot&gt; <a href="slot.html#id1116347-bb">slot</a>(Slot);
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1284278"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1284282"></a><h3>
+<a name="slotconstruct-copy-destruct"></a><code class="computeroutput">slot</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Slot&gt; <a name="id1116347-bb"></a>slot(Slot target);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Invokes
+ <code class="computeroutput"><a href="visit_each.html" title="Function template visit_each">visit_each</a></code>
+ (unqualified) to discover pointers and references to
+ <code class="computeroutput"><a href="trackable.html" title="Class trackable">signals::trackable</a></code>
+ objects in <code class="computeroutput">target</code>.<p>Initializes <code class="computeroutput">this</code> to
+ contain the incoming slot
+ <code class="computeroutput">target</code>, which may be any
+ function object with which a
+ <code class="computeroutput">SlotFunction</code> can be
+ constructed.</p></p>
+</li></ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="signal.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id907390"><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="trackable.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/special_value_from_string.html b/doc/html/special_value_from_string.html
new file mode 100644
index 0000000000..64181a374d
--- /dev/null
+++ b/doc/html/special_value_from_string.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function special_value_from_string</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id908439" title="Header &lt;boost/date_time/gregorian/parsers.hpp&gt;">
+<link rel="prev" href="greg_year.html" title="Class greg_year">
+<link rel="next" href="from_ftime.html" title="Function template from_ftime">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id908439"><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="from_ftime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="special_value_from_string"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function special_value_from_string</span></h2>
+<p>boost::gregorian::special_value_from_string &#8212; Return special_value from string argument. </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="type">special_values</span> special_value_from_string(<span class="bold"><strong>const</strong></span> std::string &amp; s);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1174446"></a><h2>Description</h2>
+<p>Return special_value from string argument. If argument is not one of the special value names (defined in src/gregorian/names.hpp), return 'not_special' </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="greg_year.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id908439"><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="from_ftime.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/special_values_formatter.html b/doc/html/special_values_formatter.html
new file mode 100644
index 0000000000..52a65a4400
--- /dev/null
+++ b/doc/html/special_values_formatter.html
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template special_values_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id933561" title="Header &lt;boost/date_time/special_values_formatter.hpp&gt;">
+<link rel="prev" href="period_parser.html" title="Class template period_parser">
+<link rel="next" href="special_values_parser.html" title="Class template special_values_parser">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id933561"><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="special_values_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="special_values_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template special_values_formatter</span></h2>
+<p>boost::date_time::special_values_formatter &#8212; Class that provides generic formmatting ostream formatting for special values. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> special_values_formatter {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt; string_type;    
+  <span class="bold"><strong>typedef</strong></span> CharT                      char_type;      
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; string_type &gt; collection_type;
+
+  <span class="emphasis"><em>// <a href="special_values_formatter.html#special_values_formatterconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="special_values_formatter.html#id1101447-bb">special_values_formatter</a>();
+  <a href="special_values_formatter.html#id1047168-bb">special_values_formatter</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> *, <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> *);
+  <a href="special_values_formatter.html#id798416-bb">special_values_formatter</a>(<span class="bold"><strong>typename</strong></span> collection_type::iterator,
+                           <span class="bold"><strong>typename</strong></span> collection_type::iterator);
+
+  <span class="emphasis"><em>// <a href="special_values_formatter.html#id1107426-bb">public member functions</a></em></span>
+  <span class="type">OutItrT</span> <a href="special_values_formatter.html#id1070590-bb">put_special</a>(OutItrT, <span class="bold"><strong>const</strong></span> boost::date_time::special_values &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type default_special_value_names;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1114421"></a><h2>Description</h2>
+<p>This class provides for the formmating of special values to an output stream. In particular, it produces strings for the values of negative and positive infinity as well as not_a_date_time.</p>
+<p>While not a facet, this class is used by the date and time facets for formatting special value types. </p>
+<div class="refsect2" lang="en">
+<a name="id1114434"></a><h3>
+<a name="special_values_formatterconstruct-copy-destruct"></a><code class="computeroutput">special_values_formatter</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1101447-bb"></a>special_values_formatter();</pre>
+<p>Default strings are not-a-date-time -infinity +infinity </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1047168-bb"></a>special_values_formatter(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> * begin,
+                         <span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> * end);</pre>
+<p>This constructor will take pair of iterators from an array of strings that represent the special values and copy them for use in formatting special values. </p>
+<pre class="programlisting"> const char* const special_value_names[]={"nadt","-inf","+inf" };
+
+ special_value_formatter svf(&amp;special_value_names[0], &amp;special_value_names[3]);
+ *
+</pre>
+</li>
+<li><pre class="literallayout"><a name="id798416-bb"></a>special_values_formatter(<span class="bold"><strong>typename</strong></span> collection_type::iterator beg,
+                         <span class="bold"><strong>typename</strong></span> collection_type::iterator end);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1114553"></a><h3>
+<a name="id1107426-bb"></a><code class="computeroutput">special_values_formatter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id1070590-bb"></a>put_special(OutItrT next,
+                    <span class="bold"><strong>const</strong></span> boost::date_time::special_values &amp; value) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="period_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id933561"><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="special_values_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/special_values_parser.html b/doc/html/special_values_parser.html
new file mode 100644
index 0000000000..ddd4c85533
--- /dev/null
+++ b/doc/html/special_values_parser.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template special_values_parser</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id970191" title="Header &lt;boost/date_time/special_values_parser.hpp&gt;">
+<link rel="prev" href="special_values_formatter.html" title="Class template special_values_formatter">
+<link rel="next" href="convert_string_type.html" title="Function template convert_string_type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_values_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id970191"><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="convert_string_type.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="special_values_parser"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template special_values_parser</span></h2>
+<p>boost::date_time::special_values_parser &#8212; Class for special_value parsing. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>class</strong></span> special_values_parser {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                string_type;    
+  <span class="bold"><strong>typedef</strong></span> std::istreambuf_iterator&lt; charT &gt;         stream_itr_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type                  duration_type;  
+  <span class="bold"><strong>typedef</strong></span> <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a>&lt; charT &gt;                parse_tree_type;
+  <span class="bold"><strong>typedef</strong></span> parse_tree_type::parse_match_result_type  match_results;  
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; collection_type;
+  <span class="bold"><strong>typedef</strong></span> charT                                     char_type;      
+
+  <span class="emphasis"><em>// <a href="special_values_parser.html#special_values_parserconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="special_values_parser.html#id1109259-bb">special_values_parser</a>();
+  <a href="special_values_parser.html#id832443-bb">special_values_parser</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                        <span class="bold"><strong>const</strong></span> string_type &amp;);
+  <a href="special_values_parser.html#id977228-bb">special_values_parser</a>(<span class="bold"><strong>typename</strong></span> collection_type::iterator,
+                        <span class="bold"><strong>typename</strong></span> collection_type::iterator);
+  <a href="special_values_parser.html#id1104080-bb">special_values_parser</a>(<span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp;);
+
+  <span class="emphasis"><em>// <a href="special_values_parser.html#id928630-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="special_values_parser.html#id928636-bb">sv_strings</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                  <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                  <span class="bold"><strong>const</strong></span> string_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="special_values_parser.html#id937757-bb">match</a>(stream_itr_type &amp;, stream_itr_type &amp;, match_results &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type nadt_string;
+  <span class="bold"><strong>static</strong></span> const char_type neg_inf_string;
+  <span class="bold"><strong>static</strong></span> const char_type pos_inf_string;
+  <span class="bold"><strong>static</strong></span> const char_type min_date_time_string;
+  <span class="bold"><strong>static</strong></span> const char_type max_date_time_string;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1115003"></a><h2>Description</h2>
+<p>TODO: add doc-comments for which elements can be changed Parses input stream for strings representing special_values. Special values parsed are:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>not_a_date_time</p></li>
+<li><p>neg_infin</p></li>
+<li><p>pod_infin</p></li>
+<li><p>min_date_time</p></li>
+<li><p>max_date_time </p></li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1115029"></a><h3>
+<a name="special_values_parserconstruct-copy-destruct"></a><code class="computeroutput">special_values_parser</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1109259-bb"></a>special_values_parser();</pre></li>
+<li><pre class="literallayout"><a name="id832443-bb"></a>special_values_parser(<span class="bold"><strong>const</strong></span> string_type &amp; nadt_str,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; neg_inf_str,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; pos_inf_str,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; min_dt_str,
+                      <span class="bold"><strong>const</strong></span> string_type &amp; max_dt_str);</pre></li>
+<li><pre class="literallayout"><a name="id977228-bb"></a>special_values_parser(<span class="bold"><strong>typename</strong></span> collection_type::iterator beg,
+                      <span class="bold"><strong>typename</strong></span> collection_type::iterator end);</pre></li>
+<li><pre class="literallayout"><a name="id1104080-bb"></a>special_values_parser(<span class="bold"><strong>const</strong></span> <a href="special_values_parser.html" title="Class template special_values_parser">special_values_parser</a>&lt; date_type, charT &gt; &amp; svp);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1115172"></a><h3>
+<a name="id928630-bb"></a><code class="computeroutput">special_values_parser</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id928636-bb"></a>sv_strings(<span class="bold"><strong>const</strong></span> string_type &amp; nadt_str, <span class="bold"><strong>const</strong></span> string_type &amp; neg_inf_str,
+                <span class="bold"><strong>const</strong></span> string_type &amp; pos_inf_str,
+                <span class="bold"><strong>const</strong></span> string_type &amp; min_dt_str,
+                <span class="bold"><strong>const</strong></span> string_type &amp; max_dt_str) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id937757-bb"></a>match(stream_itr_type &amp; sitr, stream_itr_type &amp; str_end,
+           match_results &amp; mr) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="special_values_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id970191"><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="convert_string_type.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/split_iterator.html b/doc/html/split_iterator.html
new file mode 100644
index 0000000000..08a005b40a
--- /dev/null
+++ b/doc/html/split_iterator.html
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template split_iterator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1113894" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">
+<link rel="prev" href="find_iterator.html" title="Class template find_iterator">
+<link rel="next" href="make_find_iterator.html" title="Function template make_find_iterator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="make_find_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="split_iterator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template split_iterator</span></h2>
+<p>boost::algorithm::split_iterator &#8212; split_iterator </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> IteratorT&gt;
+<span class="bold"><strong>class</strong></span> split_iterator {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="split_iterator.html#split_iteratorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="split_iterator.html#id1182017-bb">split_iterator</a>();
+  <a href="split_iterator.html#id658661-bb">split_iterator</a>(<span class="bold"><strong>const</strong></span> <a href="split_iterator.html" title="Class template split_iterator">split_iterator</a> &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT&gt; <a href="split_iterator.html#id1146119-bb">split_iterator</a>(IteratorT, IteratorT, FinderT);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+    <a href="split_iterator.html#id1150177-bb">split_iterator</a>(RangeT &amp;, FinderT);
+
+  <span class="emphasis"><em>// <a href="split_iterator.html#id1151286-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="split_iterator.html#id1151291-bb">eof</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="split_iterator.html#id1219187-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> match_type &amp;</span> <a href="split_iterator.html#id1069462-bb">dereference</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="split_iterator.html#id928825-bb">increment</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="split_iterator.html#id1178994-bb">equal</a>(<span class="bold"><strong>const</strong></span> <a href="split_iterator.html" title="Class template split_iterator">split_iterator</a> &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1323828"></a><h2>Description</h2>
+<p>Split iterator encapsulates a Finder and allows for incremental searching in a string. Unlike the find iterator, split iterator iterates through gaps between matches.</p>
+<p>Find iterator is a readable forward traversal iterator.</p>
+<p>Dereferencing the iterator yields an iterator_range delimiting the current match. </p>
+<div class="refsect2" lang="en">
+<a name="id1323843"></a><h3>
+<a name="split_iteratorconstruct-copy-destruct"></a><code class="computeroutput">split_iterator</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1182017-bb"></a>split_iterator();</pre>
+<p>Construct null iterator. All null iterators are equal.</p>
+<p></p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ eof()==true </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id658661-bb"></a>split_iterator(<span class="bold"><strong>const</strong></span> <a href="split_iterator.html" title="Class template split_iterator">split_iterator</a> &amp; Other);</pre>
+<p>Construct a copy of the split_iterator </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT&gt;
+  <a name="id1146119-bb"></a>split_iterator(IteratorT Begin, IteratorT End, FinderT Finder);</pre>
+<p>Construct new split_iterator for a given finder and a range. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <a name="id1150177-bb"></a>split_iterator(RangeT &amp; Col, FinderT Finder);</pre>
+<p>Construct new split_iterator for a given finder and a collection. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1323985"></a><h3>
+<a name="id1151286-bb"></a><code class="computeroutput">split_iterator</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1151291-bb"></a>eof() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Check the eof condition. Eof condition means that there is nothing more to be searched i.e. find_iterator is after the last match. </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1324033"></a><h3>
+<a name="id1219187-bb"></a><code class="computeroutput">split_iterator</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> match_type &amp;</span> <a name="id1069462-bb"></a>dereference() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id928825-bb"></a>increment() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1178994-bb"></a>equal(<span class="bold"><strong>const</strong></span> <a href="split_iterator.html" title="Class template split_iterator">split_iterator</a> &amp; Other) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_iterator.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1113894"><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="make_find_iterator.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/split_regex.html b/doc/html/split_regex.html
new file mode 100644
index 0000000000..bb682f4a92
--- /dev/null
+++ b/doc/html/split_regex.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template split_regex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id687854" title="Header &lt;boost/algorithm/string/regex.hpp&gt;">
+<link rel="prev" href="find_all_regex.html" title="Function template find_all_regex">
+<link rel="next" href="id1109157.html" title="Function template regex_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="id1109157.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="split_regex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template split_regex</span></h2>
+<p>boost::algorithm::split_regex &#8212; Split regex algorithm. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+  <span class="type">SequenceSequenceT &amp;</span>
+  split_regex(SequenceSequenceT &amp; Result, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+              <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp; Rx,
+              match_flag_type Flags = match_default);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1347891"></a><h2>Description</h2>
+<p>Tokenize expression. This function is equivalent to C strtok. Input sequence is split into tokens, separated by separators. Separator is an every match of the given regex. Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Flags</span></dt>
+<dd><p>Regex options </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>A container which will be searched. </p></dd>
+<dt><span class="term">Result</span></dt>
+<dd><p>A container that can hold copies of references to the substrings. </p></dd>
+<dt><span class="term">Rx</span></dt>
+<dd><p>A regular expression </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A reference to the result<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Prior content of the result will be overwritten.<p>This function provides the strong exception-safety guarantee </p></p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_all_regex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id687854"><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="id1109157.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/split_timedate_system.html b/doc/html/split_timedate_system.html
new file mode 100644
index 0000000000..ce0bf63037
--- /dev/null
+++ b/doc/html/split_timedate_system.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template split_timedate_system</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id869840" title="Header &lt;boost/date_time/time_system_split.hpp&gt;">
+<link rel="prev" href="counted_time_system.html" title="Class template counted_time_system">
+<link rel="next" href="time_zone_base.html" title="Class template time_zone_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="counted_time_system.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id869840"><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="time_zone_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="split_timedate_system"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template split_timedate_system</span></h2>
+<p>boost::date_time::split_timedate_system &#8212; An unadjusted time system implementation. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> config, boost::int32_t ticks_per_second&gt;
+<span class="bold"><strong>class</strong></span> split_timedate_system {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> config::time_rep_type                                              time_rep_type;     
+  <span class="bold"><strong>typedef</strong></span> config::date_type                                                  date_type;         
+  <span class="bold"><strong>typedef</strong></span> config::time_duration_type                                         time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> config::date_duration_type                                         date_duration_type;
+  <span class="bold"><strong>typedef</strong></span> config::int_type                                                   int_type;          
+  <span class="bold"><strong>typedef</strong></span> config::resolution_traits                                          resolution_traits; 
+  <span class="bold"><strong>typedef</strong></span> <a href="wrapping_int.html" title="Class template wrapping_int">date_time::wrapping_int</a>&lt; int_type, INT64_C(86400)*ticks_per_second wrap_int_type;     
+  <span class="bold"><strong>typedef</strong></span> <a href="wrapping_int.html" title="Class template wrapping_int">date_time::wrapping_int</a>&lt; int_type, ticks_per_day &gt;                 wrap_int_type;     
+
+  <span class="emphasis"><em>// <a href="split_timedate_system.html#id824693-bb">public static functions</a></em></span>
+  <span class="type">time_rep_type</span> <a href="split_timedate_system.html#id824698-bb">get_time_rep</a>(special_values) ;
+  <span class="type">time_rep_type</span>
+  <a href="split_timedate_system.html#id824722-bb">get_time_rep</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+               date_time::dst_flags = not_dst) ;
+  <span class="type">date_type</span> <a href="split_timedate_system.html#id865770-bb">get_date</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">time_duration_type</span> <a href="split_timedate_system.html#id865793-bb">get_time_of_day</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">std::string</span> <a href="split_timedate_system.html#id823217-bb">zone_name</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="split_timedate_system.html#id830054-bb">is_equal</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="split_timedate_system.html#id833388-bb">is_less</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+  <span class="type">time_rep_type</span> <a href="split_timedate_system.html#id869247-bb">add_days</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_rep_type</span>
+  <a href="split_timedate_system.html#id832062-bb">subtract_days</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> date_duration_type &amp;) ;
+  <span class="type">time_rep_type</span>
+  <a href="split_timedate_system.html#id832097-bb">subtract_time_duration</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type">time_rep_type</span> <a href="split_timedate_system.html#id832132-bb">add_time_duration</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, time_duration_type) ;
+  <span class="type">time_duration_type</span>
+  <a href="split_timedate_system.html#id832167-bb">subtract_times</a>(<span class="bold"><strong>const</strong></span> time_rep_type &amp;, <span class="bold"><strong>const</strong></span> time_rep_type &amp;) ;
+
+  <span class="emphasis"><em>// <a href="split_timedate_system.html#id832203-bb">private member functions</a></em></span>
+  <span class="type"></span> <a href="split_timedate_system.html#id832208-bb">BOOST_STATIC_CONSTANT</a>(int_type,
+                         ticks_per_day = INT64_C(86400)*config::tick_per_second) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1144984"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1144992"></a><h3>
+<a name="id824693-bb"></a><code class="computeroutput">split_timedate_system</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">time_rep_type</span> <a name="id824698-bb"></a>get_time_rep(special_values sv) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id824722-bb"></a>get_time_rep(<span class="bold"><strong>const</strong></span> date_type &amp; day, <span class="bold"><strong>const</strong></span> time_duration_type &amp; tod,
+             date_time::dst_flags dst = not_dst) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id865770-bb"></a>get_date(<span class="bold"><strong>const</strong></span> time_rep_type &amp; val) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id865793-bb"></a>get_time_of_day(<span class="bold"><strong>const</strong></span> time_rep_type &amp; val) ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id823217-bb"></a>zone_name(<span class="bold"><strong>const</strong></span> time_rep_type &amp; ) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id830054-bb"></a>is_equal(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id833388-bb"></a>is_less(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id869247-bb"></a>add_days(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, <span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id832062-bb"></a>subtract_days(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, <span class="bold"><strong>const</strong></span> date_duration_type &amp; dd) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id832097-bb"></a>subtract_time_duration(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base,
+                       <span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_rep_type</span>
+<a name="id832132-bb"></a>add_time_duration(<span class="bold"><strong>const</strong></span> time_rep_type &amp; base, time_duration_type td) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span>
+<a name="id832167-bb"></a>subtract_times(<span class="bold"><strong>const</strong></span> time_rep_type &amp; lhs, <span class="bold"><strong>const</strong></span> time_rep_type &amp; rhs) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1145337"></a><h3>
+<a name="id832203-bb"></a><code class="computeroutput">split_timedate_system</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id832208-bb"></a>BOOST_STATIC_CONSTANT(int_type ,
+                       ticks_per_day = INT64_C(86400)*config::tick_per_second) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="counted_time_system.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id869840"><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="time_zone_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/starts_with.html b/doc/html/starts_with.html
new file mode 100644
index 0000000000..5a0234f59b
--- /dev/null
+++ b/doc/html/starts_with.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function starts_with</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">
+<link rel="prev" href="empty_formatter.html" title="Function template empty_formatter">
+<link rel="next" href="istarts_with.html" title="Function template istarts_with">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="empty_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="istarts_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="starts_with"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function starts_with</span></h2>
+<p>boost::algorithm::starts_with &#8212; 'Starts with' predicate </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> starts_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test,
+                   PredicateT Comp);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> starts_with(<span class="bold"><strong>const</strong></span> Range1T &amp; Input, <span class="bold"><strong>const</strong></span> Range2T &amp; Test);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1326581"></a><h2>Description</h2>
+<p>This predicate holds when the test string is a prefix of the Input. In other words, if the input starts with the test. When the optional predicate is specified, it is used for character-wise comparison.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Comp</span></dt>
+<dd><p>An element comparison predicate </p></dd>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Test</span></dt>
+<dd><p>A test sequence </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The result of the test<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="empty_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1144873"><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="istarts_with.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/static_local_time_adjustor.html b/doc/html/static_local_time_adjustor.html
new file mode 100644
index 0000000000..8fe1013898
--- /dev/null
+++ b/doc/html/static_local_time_adjustor.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template static_local_time_adjustor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045289" title="Header &lt;boost/date_time/local_time_adjustor.hpp&gt;">
+<link rel="prev" href="id1075450.html" title="Class template dynamic_local_time_adjustor">
+<link rel="next" href="local_adjustor.html" title="Class template local_adjustor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1075450.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="local_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="static_local_time_adjustor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template static_local_time_adjustor</span></h2>
+<p>boost::date_time::static_local_time_adjustor &#8212; Embed the rules for local time adjustments at compile time. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> dst_rules, <span class="bold"><strong>typename</strong></span> utc_offset_rules&gt;
+<span class="bold"><strong>class</strong></span> static_local_time_adjustor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type          date_type;         
+
+  <span class="emphasis"><em>// <a href="static_local_time_adjustor.html#id899927-bb">public static functions</a></em></span>
+  <span class="type">time_duration_type</span> <a href="static_local_time_adjustor.html#id899932-bb">utc_to_local_offset</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type">time_duration_type</span>
+  <a href="static_local_time_adjustor.html#id1036272-bb">local_to_utc_offset</a>(<span class="bold"><strong>const</strong></span> time_type &amp;,
+                      date_time::dst_flags = date_time::calculate) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1108698"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1108704"></a><h3>
+<a name="id899927-bb"></a><code class="computeroutput">static_local_time_adjustor</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">time_duration_type</span> <a name="id899932-bb"></a>utc_to_local_offset(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre>
+<p>
+The logic is as follows. Starting with UTC time use the offset to create a label for an non-dst adjusted local time. Then call dst_rules::local_is_dst with the non adjust local time. The results of this function will either unabiguously decide that the initial local time is in dst or return an illegal or ambiguous result. An illegal result only occurs at the end of dst (where labels are skipped) and indicates that dst has ended. An ambiguous result means that we need to recheck by making a dst adjustment and then rechecking. If the dst offset is added to the utc time and the recheck proves non-ambiguous then we are past the boundary. If it is still ambiguous then we are ahead of the boundary and dst is still in effect.</p>
+<p>TODO -- check if all dst offsets are positive. If not then the algorithm needs to check for this and reverse the illegal/ambiguous logic. </p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">t</span></dt>
+<dd><p>UTC time to calculate offset to local time This adjustment depends on the following observations about the workings of the DST boundary offset. Since UTC time labels are monotonically increasing we can determine if a given local time is in DST or not and therefore adjust the offset appropriately.</p></dd>
+</dl>
+</div>
+</li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span>
+<a name="id1036272-bb"></a>local_to_utc_offset(<span class="bold"><strong>const</strong></span> time_type &amp; t,
+                    date_time::dst_flags dst = date_time::calculate) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1075450.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="local_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/static_visitor.html b/doc/html/static_visitor.html
new file mode 100644
index 0000000000..1c92f6bd02
--- /dev/null
+++ b/doc/html/static_visitor.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template static_visitor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1216732" title="Header &lt;boost/variant/static_visitor.hpp&gt;">
+<link rel="prev" href="bad_visit.html" title="Class bad_visit">
+<link rel="next" href="visitor_ptr_t.html" title="Class template visitor_ptr_t">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_visit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1216732"><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="visitor_ptr_t.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="static_visitor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template static_visitor</span></h2>
+<p>boost::static_visitor &#8212; Convenient base type for static visitors.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ResultType&gt;
+<span class="bold"><strong>class</strong></span> static_visitor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> ResultType result_type; <span class="emphasis"><em>// Exposes result_type member as required by StaticVisitor concept.</em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1670078"></a><h2>Description</h2>
+<p>Denotes the intent of the deriving class as meeting the
+ requirements of a static visitor of some type. Also exposes the
+ inner type <code class="computeroutput">result_type</code> as required by the
+ <a href="variant/reference.html#variant.concepts.static-visitor" title="StaticVisitor"><span class="emphasis"><em>StaticVisitor</em></span></a>
+ concept.</p>
+<p><span class="bold"><strong>Notes</strong></span>:
+ <code class="computeroutput">static_visitor</code> is intended for use as a base type only
+ and is therefore noninstantiable.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_visit.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1216732"><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="visitor_ptr_t.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo.html b/doc/html/string_algo.html
index b40a89a523..942ef3dc09 100644
--- a/doc/html/string_algo.html
+++ b/doc/html/string_algo.html
@@ -1,10 +1,171 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/string_algo.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/string_algo.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/string_algo.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 11. Boost String Algorithms Library</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="boost_staticassert/test.html" title=" Test Programs">
+<link rel="next" href="string_algo/release_notes.html" title="Release Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_staticassert/test.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="string_algo/release_notes.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="string_algo"></a>Chapter 11. Boost String Algorithms Library</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Pavol</span> <span class="surname">Droba</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2002-2004 Pavol Droba</p></div>
+<div><div class="legalnotice">
+<a name="id1290424"></a><p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="string_algo.html#string_algo.intro">Introduction</a></span></dt>
+<dt><span class="section"><a href="string_algo/release_notes.html">Release Notes</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html">Usage</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/usage.html#id1290660">First Example</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1290831">Case conversion</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1290885">Predicates and Classification</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1290955">Trimming</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1291015">Find algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1291126">Replace Algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1291241">Find Iterator</a></span></dt>
+<dt><span class="section"><a href="string_algo/usage.html#id1291326">Split</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/quickref.html">Quick Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/quickref.html#id1291454">Algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/quickref.html#id1292839">Finders and Formatters</a></span></dt>
+<dt><span class="section"><a href="string_algo/quickref.html#id1293094">Iterators</a></span></dt>
+<dt><span class="section"><a href="string_algo/quickref.html#id1293149">Classification</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/design.html">Design Topics</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.string">String Representation</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.sequence_traits">Sequence Traits</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.find">Find Algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.replace">Replace Algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.split">Find Iterators &amp; Split Algorithms</a></span></dt>
+<dt><span class="section"><a href="string_algo/design.html#string_algo.exception">Exception Safety</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/concept.html">Concepts</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/concept.html#id1311377">Definitions</a></span></dt>
+<dt><span class="section"><a href="string_algo/concept.html#string_algo.finder_concept">Finder Concept</a></span></dt>
+<dt><span class="section"><a href="string_algo/concept.html#string_algo.formatter_concept">Formatter concept</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/reference.html#id1184719">Header &lt;boost/algorithm/string/case_conv.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1174262">Header &lt;boost/algorithm/string/classification.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1212611">Header &lt;boost/algorithm/string/compare.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id907172">Header &lt;boost/algorithm/string/concept.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1178575">Header &lt;boost/algorithm/string/constants.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id904993">Header &lt;boost/algorithm/string/erase.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1102090">Header &lt;boost/algorithm/string/find.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1188068">Header &lt;boost/algorithm/string/find_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1113894">Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id692668">Header &lt;boost/algorithm/string/finder.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1213774">Header &lt;boost/algorithm/string/formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1144873">Header &lt;boost/algorithm/string/predicate.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id687854">Header &lt;boost/algorithm/string/regex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id658329">Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id797239">Header &lt;boost/algorithm/string/replace.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id657172">Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1147531">Header &lt;boost/algorithm/string/split.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id872099">Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id696877">Header &lt;boost/algorithm/string.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id1143957">Header &lt;boost/algorithm/string_regex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="string_algo/reference.html#id907869">Header &lt;boost/algorithm/string/trim.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/rationale.html">Rationale</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/rationale.html#id1356907">Locales</a></span></dt>
+<dt><span class="section"><a href="string_algo/rationale.html#string_algo.regex">Regular Expressions</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/env.html">Environment</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="string_algo/env.html#id1357003">Build</a></span></dt>
+<dt><span class="section"><a href="string_algo/env.html#id1357025">Examples</a></span></dt>
+<dt><span class="section"><a href="string_algo/env.html#id1357037">Tests</a></span></dt>
+<dt><span class="section"><a href="string_algo/env.html#id1357047">Portability</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="string_algo/credits.html">Credits</a></span></dt>
+<dd><dl><dt><span class="section"><a href="string_algo/credits.html#string_algo.ack">Acknowledgments</a></span></dt></dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="string_algo.intro"></a>Introduction</h3></div></div></div>
+<p>
+ The String Algorithm Library provides a generic implementation of
+ string-related algorithms which are missing in STL. It is an extension
+ to the algorithms library of STL and it includes trimming, case conversion,
+ predicates and find/replace functions. All of them come in different variants
+ so it is easier to choose the best fit for a particular need.
+ </p>
+<p>
+ The implementation is not restricted to work with a particular container
+ (like <code class="computeroutput">std::basic_string</code>), rather it is as generic as
+ possible. This generalization is not compromising the performance since
+ algorithms are using container specific features when it means a performance
+ gain.
+ </p>
+<p><span class="bold"><strong>
+ Important note: In this documentation we use term <span class="emphasis"><em>string</em></span> to
+ designate a sequence of <span class="emphasis"><em>characters</em></span> stored in an arbitrary container.
+ A <span class="emphasis"><em>string</em></span> is not restricted to <code class="computeroutput">std::basic_string</code> and
+ <span class="emphasis"><em>character</em></span> does not have to be <code class="computeroutput">char</code> or <code class="computeroutput">wchar_t</code>,
+ although these are most common candidates.
+ </strong></span>
+ Consult the <a href="string_algo/design.html" title="Design Topics">design chapter</a> to see precise specification of
+ supported string types.
+ </p>
+<p>
+ The library interface functions and classes are defined in namespace <code class="computeroutput">boost::algorithm</code>, and
+ they are lifted into namespace <code class="computeroutput">boost</code> via using declaration.
+ </p>
+<p>
+ The documentation is divided into several sections. For a quick start read the
+ <a href="string_algo/usage.html" title="Usage">Usage</a> section followed by
+ <a href="string_algo/quickref.html" title="Quick Reference">Quick Reference</a>.
+ <a href="string_algo/design.html" title="Design Topics">The Design Topics</a>,
+ <a href="string_algo/concept.html" title="Concepts">Concepts</a> and <a href="string_algo/rationale.html" title="Rationale">Rationale</a>
+ provide some explanation about the library design and structure an explain how it should be used.
+ See the <a href="string_algo/reference.html" title="Reference">Reference</a> for the complete list of provided utilities
+ and algorithms. Functions and classes in the reference are organized by the headers in which they are defined.
+ The reference contains links to the detailed description for every entity in the library.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: April 15, 2005 at 21:05:00 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_staticassert/test.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="string_algo/release_notes.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/string_algo/concept.html b/doc/html/string_algo/concept.html
new file mode 100644
index 0000000000..f3cdbe6155
--- /dev/null
+++ b/doc/html/string_algo/concept.html
@@ -0,0 +1,229 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concepts</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="design.html" title="Design Topics">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="reference.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="string_algo.concept"></a>Concepts</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concept.html#id1311377">Definitions</a></span></dt>
+<dt><span class="section"><a href="concept.html#string_algo.finder_concept">Finder Concept</a></span></dt>
+<dt><span class="section"><a href="concept.html#string_algo.formatter_concept">Formatter concept</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1311377"></a>Definitions</h4></div></div></div>
+<div class="table">
+<a name="id1311380"></a><p class="title"><b>Table 11.12. Notation</b></p>
+<table class="table" summary="Notation">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td align="left"><code class="computeroutput">F</code></td>
+<td align="left">A type that is a model of Finder</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">Fmt</code></td>
+<td align="left">A type that is a model of Formatter</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">Iter</code></td>
+<td align="left">
+ Iterator Type
+ </td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">f</code></td>
+<td align="left">Object of type <code class="computeroutput">F</code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">fmt</code></td>
+<td align="left">Object of type <code class="computeroutput">Fmt</code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">i,j</code></td>
+<td align="left">Objects of type <code class="computeroutput">Iter</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.finder_concept"></a>Finder Concept</h4></div></div></div>
+<p>
+ Finder is a functor which searches for an arbitrary part of a container.
+ The result of the search is given as an <code class="computeroutput">iterator_range</code>
+ delimiting the selected part.
+ </p>
+<div class="table">
+<a name="id1311479"></a><p class="title"><b>Table 11.13. Valid Expressions</b></p>
+<table class="table" summary="Valid Expressions">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Expression</th>
+<th align="left">Return Type</th>
+<th align="left">Effects</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><code class="computeroutput">f(i,j)</code></td>
+<td align="left">Convertible to <code class="computeroutput">iterator_range&lt;Iter&gt;</code>
+</td>
+<td align="left">Perform the search on the interval [i,j) and returns the result of the search</td>
+</tr></tbody>
+</table>
+</div>
+<p>
+ Various algorithms need to perform a search in a container and a Finder is a generalization of such
+ search operations that allows algorithms to abstract from searching. For instance, generic replace
+ algorithms can replace any part of the input, and the Finder is used to select the desired one.
+ </p>
+<p>
+ Note, that it is only required that the finder works with a particular iterator type. However,
+ a Finder operation can be defined as a template, allowing the Finder to work with any iterator.
+ </p>
+<p><span class="bold"><strong>Examples</strong></span></p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Finder implemented as a class. This Finder always returns the whole input as a match. <code class="computeroutput">operator()</code>
+ is templated, so that the finder can be used on any iterator type.
+
+ <pre class="programlisting">
+struct simple_finder
+{
+ template&lt;typename ForwardIteratorT&gt;
+ boost::iterator_range&lt;ForwardIterator&gt; operator()(
+ ForwardIteratorT Begin,
+ ForwardIteratorT End )
+ {
+ return boost::make_range( Begin, End );
+ }
+};
+ </pre>
+</li>
+<li>
+ Function Finder. Finder can be any function object. That is, any ordinary function with the
+ required signature can be used as well. However, such a function can be used only for
+ a specific iterator type.
+
+ <pre class="programlisting">
+boost::iterator_range&lt;std::string&gt; simple_finder(
+ std::string::const_iterator Begin,
+ std::string::const_iterator End )
+{
+ return boost::make_range( Begin, End );
+}
+ </pre>
+</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.formatter_concept"></a>Formatter concept</h4></div></div></div>
+<p>
+ Formatters are used by <a href="design.html#string_algo.replace" title="Replace Algorithms">replace algorithms</a>.
+ They are used in close combination with finders.
+ A formatter is a functor, which takes a result from a Finder operation and transforms it in a specific way.
+ The operation of the formatter can use additional information provided by a specific finder,
+ for example <code class="computeroutput"><a href="../id1171494.html" title="Function template regex_formatter">regex_formatter()</a></code> uses the match information from
+ <code class="computeroutput"><a href="../id685080.html" title="Function template regex_finder">regex_finder()</a></code> to format the result of formatter operation.
+ </p>
+<div class="table">
+<a name="id1311619"></a><p class="title"><b>Table 11.14. Valid Expressions</b></p>
+<table class="table" summary="Valid Expressions">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Expression</th>
+<th align="left">Return Type</th>
+<th align="left">Effects</th>
+</tr></thead>
+<tbody><tr>
+<td align="left"><code class="computeroutput">fmt(f(i,j))</code></td>
+<td align="left">A container type, accessible using container traits</td>
+<td align="left">Formats the result of the finder operation</td>
+</tr></tbody>
+</table>
+</div>
+<p>
+ Similarly to finders, formatters generalize format operations. When a finder is used to
+ select a part of the input, formatter takes this selection and performs some formating
+ on it. Algorithms can abstract from formating using a formatter.
+ </p>
+<p><span class="bold"><strong>Examples</strong></span></p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Formatter implemented as a class. This Formatter does not perform any formating and
+ returns the match, repackaged. <code class="computeroutput">operator()</code>
+ is templated, so that the Formatter can be used on any Finder type.
+
+ <pre class="programlisting">
+struct simple_formatter
+{
+ template&lt;typename FindResultT&gt;
+ std::string operator()( const FindResultT&amp; Match )
+ {
+ std::string Temp( Match.begin(), Match.end() );
+ return Temp;
+ }
+};
+ </pre>
+</li>
+<li>
+ Function Formatter. Similarly to Finder, Formatter can be any function object.
+ However, as a function, it can be used only with a specific Finder type.
+
+ <pre class="programlisting">
+std::string simple_formatter( boost::iterator_range&lt;std::string::const_iterator&gt;&amp; Match )
+{
+ std::string Temp( Match.begin(), Match.end() );
+ return Temp;
+}
+ </pre>
+</li>
+</ul></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 16, 2004 at 09:06:39 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/credits.html b/doc/html/string_algo/credits.html
new file mode 100644
index 0000000000..3f460f3327
--- /dev/null
+++ b/doc/html/string_algo/credits.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Credits</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="env.html" title="Environment">
+<link rel="next" href="../threads.html" title="Chapter 12. Boost.Threads">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="env.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="../threads.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="string_algo.credits"></a>Credits</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="credits.html#string_algo.ack">Acknowledgments</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.ack"></a>Acknowledgments</h4></div></div></div>
+<p>
+ The author would like to thank everybody who gave suggestions and comments. Especially valuable
+ were the contributions of Thorsten Ottosen, Jeff Garland and the other boost members who participated
+ in the review process, namely David Abrahams, Daniel Frey, Beman Dawes, John Maddock, David B.Held, Pavel Vozenilek
+ and many other.
+ </p>
+<p>
+ Additional thanks go to Stefan Slapeta and Toon Knapen, who have been very resourceful in solving various
+ portability issues.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: August 03, 2004 at 17:28:02 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="env.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="../threads.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/design.html b/doc/html/string_algo/design.html
new file mode 100644
index 0000000000..597adf5f2b
--- /dev/null
+++ b/doc/html/string_algo/design.html
@@ -0,0 +1,255 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Topics</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="quickref.html" title="Quick Reference">
+<link rel="next" href="concept.html" title="Concepts">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quickref.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="concept.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="string_algo.design"></a>Design Topics</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="design.html#string_algo.string">String Representation</a></span></dt>
+<dt><span class="section"><a href="design.html#string_algo.sequence_traits">Sequence Traits</a></span></dt>
+<dt><span class="section"><a href="design.html#string_algo.find">Find Algorithms</a></span></dt>
+<dt><span class="section"><a href="design.html#string_algo.replace">Replace Algorithms</a></span></dt>
+<dt><span class="section"><a href="design.html#string_algo.split">Find Iterators &amp; Split Algorithms</a></span></dt>
+<dt><span class="section"><a href="design.html#string_algo.exception">Exception Safety</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.string"></a>String Representation</h4></div></div></div>
+<p>
+ As the name suggest, this library works mainly with strings. However, in the context of this library,
+ a string is not restricted to any particular implementation (like <code class="computeroutput">std::basic_string</code>),
+ rather it is a concept. This allows the algorithms in this library to be reused for any string type,
+ that satisfies the given requirements.
+ </p>
+<p><span class="bold"><strong>Definition:</strong></span> A string is a
+ <a href="../../../libs/range/doc/range.html" target="_top">range</a> of characters accessible in sequential
+ ordered fashion. Character is any value type with "cheap" copying and assignment.
+ </p>
+<p>
+ First requirement of string-type is that it must accessible using
+ <a href="../../../libs/range/index.html" target="_top">Boost.Range</a>. This facility allows to access
+ the elements inside the string in a uniform iterator-based fashion.
+ This is sufficient for our library
+ </p>
+<p>
+ Second requirement defines the way in which the characters are stored in the string. Algorithms in
+ this library work with an assumption that copying a character is cheaper then allocating extra
+ storage to cache results. This is a natural assumption for common character types. Algorithms will
+ work even if this requirement is not satisfied, however at the cost of performance degradation.
+ </p>
+<p></p>
+<p>
+ In addition some algorithms have additional requirements on the string-type. Particularly, it is required
+ that an algorithm can create a new string of the given type. In this case, it is required that
+ the type satisfies the sequence (Std 23.1.1) requirements.
+ </p>
+<p>
+ In the reference and also in the code, requirement on the string type is designated by the name of
+ template argument. <code class="computeroutput">RangeT</code> means that the basic range requirements must hold.
+ <code class="computeroutput">SequenceT</code> designates extended sequence requirements.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.sequence_traits"></a>Sequence Traits</h4></div></div></div>
+<p>
+ The major difference between <code class="computeroutput">std::list</code> and <code class="computeroutput">std::vector</code> is not in the interfaces
+ they provide, but rather in the inner details of the class and the way how it performs
+ various operations. The problem is that it is not possible to infer this difference from the
+ definitions of classes without some special mechanism.
+ However, some algorithms can run significantly faster with the knowledge of the properties
+ of a particular container.
+ </p>
+<p>
+ Sequence traits allow one to specify additional properties of a sequence container (see Std.32.2).
+ These properties are then used by algorithms to select optimized handling for some operations.
+ The sequence traits are declared in the header
+ <code class="computeroutput"><a href="reference.html#id657172" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">boost/algorithm/string/sequence_traits.hpp</a></code>.
+ </p>
+<p>
+ In the table C denotes a container and c is an object of C.
+ </p>
+<div class="table">
+<a name="id1311010"></a><p class="title"><b>Table 11.11. Sequence Traits</b></p>
+<table class="table" summary="Sequence Traits">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Trait</th>
+<th align="left">Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">
+<code class="computeroutput"><a href="../has_native_replace.html" title="Class template has_native_replace">has_native_replace&lt;C&gt;</a></code>::value</td>
+<td align="left">Specifies that the sequence has std::string like replace method</td>
+</tr>
+<tr>
+<td align="left">
+<code class="computeroutput"><a href="../has_stable_iterators.html" title="Class template has_stable_iterators">has_stable_iterators&lt;C&gt;</a></code>::value</td>
+<td align="left">
+ Specifies that the sequence has stable iterators. It means,
+ that operations like <code class="computeroutput">insert</code>/<code class="computeroutput">erase</code>/<code class="computeroutput">replace</code>
+ do not invalidate iterators.
+ </td>
+</tr>
+<tr>
+<td align="left">
+<code class="computeroutput"><a href="../has_const_time_insert.html" title="Class template has_const_time_insert">has_const_time_insert&lt;C&gt;</a></code>::value</td>
+<td align="left">
+ Specifies that the insert method of the sequence has
+ constant time complexity.
+ </td>
+</tr>
+<tr>
+<td align="left">
+<code class="computeroutput"><a href="../has_const_time_erase.html" title="Class template has_const_time_erase">has_const_time_erase&lt;C&gt;</a></code>::value</td>
+<td align="left">
+ Specifies that the erase method of the sequence has constant time complexity
+ </td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>
+ Current implementation contains specializations for std::list&lt;T&gt; and
+ std::basic_string&lt;T&gt; from the standard library and SGI's std::rope&lt;T&gt; and std::slist&lt;T&gt;.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.find"></a>Find Algorithms</h4></div></div></div>
+<p>
+ Find algorithms have similar functionality to <code class="computeroutput">std::search()</code> algorithm. They provide a different
+ interface which is more suitable for common string operations.
+ Instead of returning just the start of matching subsequence they return a range which is necessary
+ when the length of the matching subsequence is not known beforehand.
+ This feature also allows a partitioning of the input sequence into three
+ parts: a prefix, a substring and a suffix.
+ </p>
+<p>
+ Another difference is an addition of various searching methods besides find_first, including find_regex.
+ </p>
+<p>
+ It the library, find algorithms are implemented in terms of
+ <a href="concept.html#string_algo.finder_concept" title="Finder Concept">Finders</a>. Finders are used also by other facilities
+ (replace,split).
+ For convenience, there are also function wrappers for these finders to simplify find operations.
+ </p>
+<p>
+ Currently the library contains only naive implementation of find algorithms with complexity
+ O(n * m) where n is the size of the input sequence and m is the size of the search sequence.
+ There are algorithms with complexity O(n), but for smaller sequence a constant overhead is
+ rather big. For small m &lt;&lt; n (m by magnitude smaller than n) the current implementation
+ provides acceptable efficiency.
+ Even the C++ standard defines the required complexity for search algorithm as O(n * m).
+ It is possible that a future version of library will also contain algorithms with linear
+ complexity as an option
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.replace"></a>Replace Algorithms</h4></div></div></div>
+<p>
+ The implementation of replace algorithms follows the layered structure of the library. The
+ lower layer implements generic substitution of a range in the input sequence.
+ This layer takes a <a href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> object and a
+ <a href="concept.html#string_algo.formatter_concept" title="Formatter concept">Formatter</a> object as an input. These two
+ functors define what to replace and what to replace it with. The upper layer functions
+ are just wrapping calls to the lower layer. Finders are shared with the find and split facility.
+ </p>
+<p>
+ As usual, the implementation of the lower layer is designed to work with a generic sequence while
+ taking advantage of specific features if possible
+ (by using <a href="design.html#string_algo.sequence_traits" title="Sequence Traits">Sequence traits</a>)
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.split"></a>Find Iterators &amp; Split Algorithms</h4></div></div></div>
+<p>
+ Find iterators are a logical extension of the <a href="design.html#string_algo.find" title="Find Algorithms">find facility</a>.
+ Instead of searching for one match, the whole input can be iteratively searched for multiple matches.
+ The result of the search is then used to partition the input. It depends on the algorithms which parts
+ are returned as the result. They can be the matching parts (<code class="computeroutput"><a href="../find_iterator.html" title="Class template find_iterator">find_iterator</a></code>) of the parts in
+ between (<code class="computeroutput"><a href="../split_iterator.html" title="Class template split_iterator">split_iterator</a></code>).
+ </p>
+<p>
+ In addition the split algorithms like <code class="computeroutput"><a href="../find_all.html" title="Function template find_all">find_all()</a></code> and <code class="computeroutput"><a href="../id726784.html" title="Function template split">split()</a></code>
+ can simplify the common operations. They use a find iterator to search the whole input and copy the
+ matches they found into the supplied container.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.exception"></a>Exception Safety</h4></div></div></div>
+<p>
+ The library requires that all operations on types used as template
+ or function arguments provide the <span class="emphasis"><em>basic exception-safety guarantee</em></span>.
+ In turn, all functions and algorithms in this library, except where stated
+ otherwise, will provide the <span class="emphasis"><em>basic exception-safety guarantee</em></span>.
+ In other words:
+ The library maintains its invariants and does not leak resources in
+ the face of exceptions. Some library operations give stronger
+ guarantees, which are documented on an individual basis.
+ </p>
+<p>
+ Some functions can provide the <span class="emphasis"><em>strong exception-safety guarantee</em></span>.
+ That means that following statements are true:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ If an exception is thrown, there are no effects other than those
+ of the function
+ </li>
+<li>
+ If an exception is thrown other than by the function, there are no effects
+ </li>
+</ul></div>
+<p>
+ This guarantee can be provided under the condition that the operations
+ on the types used for arguments for these functions either
+ provide the strong exception guarantee or do not alter the global state .
+ </p>
+<p>
+ In the reference, under the term <span class="emphasis"><em>strong exception-safety guarantee</em></span>, we mean the
+ guarantee as defined above.
+ </p>
+<p>
+ For more information about the exception safety topics, follow this
+ <a href="../../../more/generic_exception_safety.html" target="_top">link</a></p>
+</div>
+</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 14, 2005 at 19:11:09 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quickref.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="concept.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/env.html b/doc/html/string_algo/env.html
new file mode 100644
index 0000000000..8a224a73e3
--- /dev/null
+++ b/doc/html/string_algo/env.html
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Environment</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="rationale.html" title="Rationale">
+<link rel="next" href="credits.html" title="Credits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="credits.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="string_algo.env"></a>Environment</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="env.html#id1357003">Build</a></span></dt>
+<dt><span class="section"><a href="env.html#id1357025">Examples</a></span></dt>
+<dt><span class="section"><a href="env.html#id1357037">Tests</a></span></dt>
+<dt><span class="section"><a href="env.html#id1357047">Portability</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357003"></a>Build</h4></div></div></div>
+<p>
+ The whole library is provided in headers. Regex variants of some algorithms,
+ however, are dependent on the Boost.Regex library. All such algorithms are
+ separated in <code class="computeroutput"><a href="reference.html#id1143957" title="Header &lt;boost/algorithm/string_regex.hpp&gt;">boost/algorithm/string_regex.hpp</a></code>.
+ If this header is used, the application must be linked with the Boost.Regex
+ library.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357025"></a>Examples</h4></div></div></div>
+<p>
+ Examples showing the basic usage of the library can be found in the libs/algorithm/string/example
+ directory. There is a separate file for the each part of the library. Please follow the boost
+ build guidelines to build examples using the bjam. To successfully build regex examples
+ the Boost.Regex library is required.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357037"></a>Tests</h4></div></div></div>
+<p>
+ A full set of test cases for the library is located in the libs/algorithm/string/test directory.
+ The test cases can be executed using the boost build system. For the tests of regular
+ expression variants of algorithms, the Boost.Regex library is required.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357047"></a>Portability</h4></div></div></div>
+<p>
+ The library has been successfully compiled and tested with the following compilers:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>Microsoft Visual C++ 7.0</li>
+<li>Microsoft Visual C++ 7.1</li>
+<li>GCC 3.2</li>
+<li>GCC 3.3.1</li>
+</ul></div>
+<p>
+
+ See <a href="http://boost.sourceforge.net/regression-logs/" target="_top">Boost regression tables</a>
+ for additional info for a particular compiler.
+ </p>
+<p>
+ There are known limitation on platforms not supporting partial template specialization.
+ Library depends on correctly implemented <code class="computeroutput">std::iterator_traits</code> class.
+ If a standard library provided with compiler is broken, the String Algorithm Library
+ cannot function properly. Usually it implies that primitive pointer iterators are not
+ working with the library functions.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 15, 2004 at 21:47:21 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/quickref.html b/doc/html/string_algo/quickref.html
new file mode 100644
index 0000000000..f5868410b1
--- /dev/null
+++ b/doc/html/string_algo/quickref.html
@@ -0,0 +1,551 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Quick Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="usage.html" title="Usage">
+<link rel="next" href="design.html" title="Design Topics">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="usage.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="design.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="string_algo.quickref"></a>Quick Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="quickref.html#id1291454">Algorithms</a></span></dt>
+<dt><span class="section"><a href="quickref.html#id1292839">Finders and Formatters</a></span></dt>
+<dt><span class="section"><a href="quickref.html#id1293094">Iterators</a></span></dt>
+<dt><span class="section"><a href="quickref.html#id1293149">Classification</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1291454"></a>Algorithms</h4></div></div></div>
+<div class="table">
+<a name="id1291457"></a><p class="title"><b>Table 11.1. Case Conversion</b></p>
+<table class="table" summary="Case Conversion">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><code class="computeroutput">to_upper</code></td>
+<td align="left">Convert a string to upper case</td>
+<td align="left">
+<code class="computeroutput"><a href="../to_upper_copy.html" title="Function to_upper_copy">to_upper_copy()</a></code><br><code class="computeroutput"><a href="../to_upper.html" title="Function template to_upper">to_upper()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">to_lower</code></td>
+<td align="left">Convert a string to lower case</td>
+<td align="left">
+<code class="computeroutput"><a href="../to_lower_copy.html" title="Function to_lower_copy">to_lower_copy()</a></code><br><code class="computeroutput"><a href="../to_lower.html" title="Function template to_lower">to_lower()</a></code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1291537"></a><p class="title"><b>Table 11.2. Trimming</b></p>
+<table class="table" summary="Trimming">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><code class="computeroutput">trim_left</code></td>
+<td align="left">Remove leading spaces from a string</td>
+<td align="left">
+<code class="computeroutput"><a href="../trim_left_copy_if.html" title="Function trim_left_copy_if">trim_left_copy_if()</a></code><br><code class="computeroutput"><a href="../trim_left_if.html" title="Function template trim_left_if">trim_left_if()</a></code><br><code class="computeroutput"><a href="../trim_left_copy.html" title="Function template trim_left_copy">trim_left_copy()</a></code><br><code class="computeroutput"><a href="../trim_left.html" title="Function template trim_left">trim_left()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">trim_right</code></td>
+<td align="left">Remove trailing spaces from a string</td>
+<td align="left">
+<code class="computeroutput"><a href="../trim_right_copy_if.html" title="Function trim_right_copy_if">trim_right_copy_if()</a></code><br><code class="computeroutput"><a href="../trim_right_if.html" title="Function template trim_right_if">trim_right_if()</a></code><br><code class="computeroutput"><a href="../trim_right_copy.html" title="Function template trim_right_copy">trim_right_copy()</a></code><br><code class="computeroutput"><a href="../trim_right.html" title="Function template trim_right">trim_right()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">trim</code></td>
+<td align="left">Remove leading and trailing spaces from a string</td>
+<td align="left">
+<code class="computeroutput"><a href="../trim_copy_if.html" title="Function trim_copy_if">trim_copy_if()</a></code><br><code class="computeroutput"><a href="../trim_if.html" title="Function template trim_if">trim_if()</a></code><br><code class="computeroutput"><a href="../trim_copy.html" title="Function template trim_copy">trim_copy()</a></code><br><code class="computeroutput"><a href="../trim.html" title="Function template trim">trim()</a></code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1291720"></a><p class="title"><b>Table 11.3. Predicates</b></p>
+<table class="table" summary="Predicates">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><code class="computeroutput">starts_with</code></td>
+<td align="left">Check if a string is a prefix of the other one</td>
+<td align="left">
+<code class="computeroutput"><a href="../starts_with.html" title="Function starts_with">starts_with()</a></code><br><code class="computeroutput"><a href="../istarts_with.html" title="Function template istarts_with">istarts_with()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">ends_with</code></td>
+<td align="left">Check if a string is a suffix of the other one</td>
+<td align="left">
+<code class="computeroutput"><a href="../ends_with.html" title="Function ends_with">ends_with()</a></code><br><code class="computeroutput"><a href="../iends_with.html" title="Function template iends_with">iends_with()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">contains</code></td>
+<td align="left">Check if a string is contained of the other one</td>
+<td align="left">
+<code class="computeroutput"><a href="../contains.html" title="Function contains">contains()</a></code><br><code class="computeroutput"><a href="../icontains.html" title="Function template icontains">icontains()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">equals</code></td>
+<td align="left">Check if two strings are equal</td>
+<td align="left">
+<code class="computeroutput"><a href="../equals.html" title="Function equals">equals()</a></code><br><code class="computeroutput"><a href="../iequals.html" title="Function template iequals">iequals()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left"><code class="computeroutput">all</code></td>
+<td align="left">Check if all elements of a string satisfy the given predicate</td>
+<td align="left"><code class="computeroutput"><a href="../all.html" title="Function template all">all()</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1291885"></a><p class="title"><b>Table 11.4. Find algorithms</b></p>
+<table class="table" summary="Find algorithms">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">find_first</td>
+<td align="left">Find the first occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../find_first.html" title="Function template find_first">find_first()</a></code><br><code class="computeroutput"><a href="../ifind_first.html" title="Function template ifind_first">ifind_first()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">find_last</td>
+<td align="left">Find the last occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../find_last.html" title="Function template find_last">find_last()</a></code><br><code class="computeroutput"><a href="../ifind_last.html" title="Function template ifind_last">ifind_last()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">find_nth</td>
+<td align="left">Find the nth (zero-indexed) occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../find_nth.html" title="Function template find_nth">find_nth()</a></code><br><code class="computeroutput"><a href="../ifind_nth.html" title="Function template ifind_nth">ifind_nth()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">find_head</td>
+<td align="left">Retrieve the head of a string</td>
+<td align="left"><code class="computeroutput"><a href="../find_head.html" title="Function template find_head">find_head()</a></code></td>
+</tr>
+<tr>
+<td align="left">find_tail</td>
+<td align="left">Retrieve the tail of a string</td>
+<td align="left"><code class="computeroutput"><a href="../find_tail.html" title="Function template find_tail">find_tail()</a></code></td>
+</tr>
+<tr>
+<td align="left">find_token</td>
+<td align="left">Find first matching token in the string</td>
+<td align="left"><code class="computeroutput"><a href="../find_token.html" title="Function template find_token">find_token()</a></code></td>
+</tr>
+<tr>
+<td align="left">find_regex</td>
+<td align="left">Use the regular expression to search the string</td>
+<td align="left"><code class="computeroutput"><a href="../find_regex.html" title="Function template find_regex">find_regex()</a></code></td>
+</tr>
+<tr>
+<td align="left">find</td>
+<td align="left">Generic find algorithm</td>
+<td align="left"><code class="computeroutput"><a href="../find.html" title="Function template find">find()</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1292074"></a><p class="title"><b>Table 11.5. Erase/Replace</b></p>
+<table class="table" summary="Erase/Replace">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">replace/erase_first</td>
+<td align="left">Replace/Erase the first occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_first.html" title="Function template replace_first">replace_first()</a></code><br><code class="computeroutput"><a href="../replace_first_copy.html" title="Function replace_first_copy">replace_first_copy()</a></code><br><code class="computeroutput"><a href="../ireplace_first.html" title="Function template ireplace_first">ireplace_first()</a></code><br><code class="computeroutput"><a href="../ireplace_first_copy.html" title="Function ireplace_first_copy">ireplace_first_copy()</a></code><br><code class="computeroutput"><a href="../erase_first.html" title="Function template erase_first">erase_first()</a></code><br><code class="computeroutput"><a href="../erase_first_copy.html" title="Function erase_first_copy">erase_first_copy()</a></code><br><code class="computeroutput"><a href="../ierase_first.html" title="Function template ierase_first">ierase_first()</a></code><br><code class="computeroutput"><a href="../ierase_first_copy.html" title="Function ierase_first_copy">ierase_first_copy()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_last</td>
+<td align="left">Replace/Erase the last occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_last.html" title="Function template replace_last">replace_last()</a></code><br><code class="computeroutput"><a href="../replace_last_copy.html" title="Function replace_last_copy">replace_last_copy()</a></code><br><code class="computeroutput"><a href="../ireplace_last.html" title="Function template ireplace_last">ireplace_last()</a></code><br><code class="computeroutput"><a href="../ireplace_last_copy.html" title="Function ireplace_last_copy">ireplace_last_copy()</a></code><br><code class="computeroutput"><a href="../erase_last.html" title="Function template erase_last">erase_last()</a></code><br><code class="computeroutput"><a href="../erase_last_copy.html" title="Function erase_last_copy">erase_last_copy()</a></code><br><code class="computeroutput"><a href="../ierase_last.html" title="Function template ierase_last">ierase_last()</a></code><br><code class="computeroutput"><a href="../ierase_last_copy.html" title="Function ierase_last_copy">ierase_last_copy()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_nth</td>
+<td align="left">Replace/Erase the nth (zero-indexed) occurrence of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_nth.html" title="Function template replace_nth">replace_nth()</a></code><br><code class="computeroutput"><a href="../replace_nth_copy.html" title="Function replace_nth_copy">replace_nth_copy()</a></code><br><code class="computeroutput"><a href="../ireplace_nth.html" title="Function template ireplace_nth">ireplace_nth()</a></code><br><code class="computeroutput"><a href="../ireplace_nth_copy.html" title="Function ireplace_nth_copy">ireplace_nth_copy()</a></code><br><code class="computeroutput"><a href="../erase_nth.html" title="Function template erase_nth">erase_nth()</a></code><br><code class="computeroutput"><a href="../erase_nth_copy.html" title="Function erase_nth_copy">erase_nth_copy()</a></code><br><code class="computeroutput"><a href="../ierase_nth.html" title="Function template ierase_nth">ierase_nth()</a></code><br><code class="computeroutput"><a href="../ierase_nth_copy.html" title="Function ierase_nth_copy">ierase_nth_copy()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_all</td>
+<td align="left">Replace/Erase the all occurrences of a string in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_all.html" title="Function template replace_all">replace_all()</a></code><br><code class="computeroutput"><a href="../replace_all_copy.html" title="Function replace_all_copy">replace_all_copy()</a></code><br><code class="computeroutput"><a href="../ireplace_all.html" title="Function template ireplace_all">ireplace_all()</a></code><br><code class="computeroutput"><a href="../ireplace_all_copy.html" title="Function ireplace_all_copy">ireplace_all_copy()</a></code><br><code class="computeroutput"><a href="../erase_all.html" title="Function template erase_all">erase_all()</a></code><br><code class="computeroutput"><a href="../erase_all_copy.html" title="Function erase_all_copy">erase_all_copy()</a></code><br><code class="computeroutput"><a href="../ierase_all.html" title="Function template ierase_all">ierase_all()</a></code><br><code class="computeroutput"><a href="../ierase_all_copy.html" title="Function ierase_all_copy">ierase_all_copy()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_head</td>
+<td align="left">Replace/Erase the head of the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_head.html" title="Function template replace_head">replace_head()</a></code><br><code class="computeroutput"><a href="../replace_head_copy.html" title="Function replace_head_copy">replace_head_copy()</a></code><br><code class="computeroutput"><a href="../erase_head.html" title="Function template erase_head">erase_head()</a></code><br><code class="computeroutput"><a href="../erase_head_copy.html" title="Function erase_head_copy">erase_head_copy()</a></code><br>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_tail</td>
+<td align="left">Replace/Erase the tail of the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_tail.html" title="Function template replace_tail">replace_tail()</a></code><br><code class="computeroutput"><a href="../replace_tail_copy.html" title="Function replace_tail_copy">replace_tail_copy()</a></code><br><code class="computeroutput"><a href="../erase_tail.html" title="Function template erase_tail">erase_tail()</a></code><br><code class="computeroutput"><a href="../erase_tail_copy.html" title="Function erase_tail_copy">erase_tail_copy()</a></code><br>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_regex</td>
+<td align="left">Replace/Erase a substring matching the given regular expression</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_regex.html" title="Function template replace_regex">replace_regex()</a></code><br><code class="computeroutput"><a href="../replace_regex_copy.html" title="Function replace_regex_copy">replace_regex_copy()</a></code><br><code class="computeroutput"><a href="../erase_regex.html" title="Function template erase_regex">erase_regex()</a></code><br><code class="computeroutput"><a href="../erase_regex_copy.html" title="Function erase_regex_copy">erase_regex_copy()</a></code><br>
+</td>
+</tr>
+<tr>
+<td align="left">replace/erase_regex_all</td>
+<td align="left">Replace/Erase all substrings matching the given regular expression</td>
+<td align="left">
+<code class="computeroutput"><a href="../replace_all_regex.html" title="Function template replace_all_regex">replace_all_regex()</a></code><br><code class="computeroutput"><a href="../replace_all_regex_copy.html" title="Function replace_all_regex_copy">replace_all_regex_copy()</a></code><br><code class="computeroutput"><a href="../erase_all_regex.html" title="Function template erase_all_regex">erase_all_regex()</a></code><br><code class="computeroutput"><a href="../erase_all_regex_copy.html" title="Function erase_all_regex_copy">erase_all_regex_copy()</a></code><br>
+</td>
+</tr>
+<tr>
+<td align="left">find_format</td>
+<td align="left">Generic replace algorithm</td>
+<td align="left">
+<code class="computeroutput"><a href="../find_format.html" title="Function template find_format">find_format()</a></code><br><code class="computeroutput"><a href="../find_format_copy.html" title="Function find_format_copy">find_format_copy()</a></code><br><code class="computeroutput"><a href="../find_format_all.html" title="Function template find_format_all">find_format_all()</a></code><br><code class="computeroutput"><a href="../find_format_all_copy.html" title="Function find_format_all_copy">find_format_all_copy()()</a></code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1292756"></a><p class="title"><b>Table 11.6. Split</b></p>
+<table class="table" summary="Split">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Algorithm name</th>
+<th align="left">Description</th>
+<th align="left">Functions</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">find_all</td>
+<td align="left">Find/Extract all matching substrings in the input</td>
+<td align="left">
+<code class="computeroutput"><a href="../find_all.html" title="Function template find_all">find_all()</a></code><br><code class="computeroutput"><a href="../ifind_all.html" title="Function template ifind_all">ifind_all()</a></code><br><code class="computeroutput"><a href="../find_all_regex.html" title="Function template find_all_regex">find_all_regex()</a></code>
+</td>
+</tr>
+<tr>
+<td align="left">split</td>
+<td align="left">Split input into parts</td>
+<td align="left">
+<code class="computeroutput"><a href="../id726784.html" title="Function template split">split()</a></code><br><code class="computeroutput"><a href="../split_regex.html" title="Function template split_regex">split_regex()</a></code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1292839"></a>Finders and Formatters</h4></div></div></div>
+<div class="table">
+<a name="id1292843"></a><p class="title"><b>Table 11.7. Finders</b></p>
+<table class="table" summary="Finders">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Finder</th>
+<th align="left">Description</th>
+<th align="left">Generators</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">first_finder</td>
+<td align="left">Search for the first match of the string in an input</td>
+<td align="left"><code class="computeroutput"><a href="../first_finder.html" title="Function first_finder">first_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">last_finder</td>
+<td align="left">Search for the last match of the string in an input</td>
+<td align="left"><code class="computeroutput"><a href="../last_finder.html" title="Function last_finder">last_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">nth_finder</td>
+<td align="left">Search for the nth (zero-indexed) match of the string in an input</td>
+<td align="left"><code class="computeroutput"><a href="../nth_finder.html" title="Function nth_finder">nth_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">head_finder</td>
+<td align="left">Retrieve the head of an input</td>
+<td align="left"><code class="computeroutput"><a href="../head_finder.html" title="Function head_finder">head_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">tail_finder</td>
+<td align="left">Retrieve the tail of an input</td>
+<td align="left"><code class="computeroutput"><a href="../tail_finder.html" title="Function tail_finder">tail_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">token_finder</td>
+<td align="left">Search for a matching token in an input</td>
+<td align="left"><code class="computeroutput"><a href="../token_finder.html" title="Function template token_finder">token_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">range_finder</td>
+<td align="left">Do no search, always returns the given range</td>
+<td align="left"><code class="computeroutput"><a href="../range_finder.html" title="Function range_finder">range_finder()</a></code></td>
+</tr>
+<tr>
+<td align="left">regex_finder</td>
+<td align="left">Search for a substring matching the given regex</td>
+<td align="left"><code class="computeroutput"><a href="../id685080.html" title="Function template regex_finder">regex_finder()</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id1293002"></a><p class="title"><b>Table 11.8. Formatters</b></p>
+<table class="table" summary="Formatters">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Formatter</th>
+<th align="left">Description</th>
+<th align="left">Generators</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">const_formatter</td>
+<td align="left">Constant formatter. Always return the specified string</td>
+<td align="left"><code class="computeroutput"><a href="../const_formatter.html" title="Function template const_formatter">const_formatter()</a></code></td>
+</tr>
+<tr>
+<td align="left">identity_formatter</td>
+<td align="left">Identity formatter. Return unmodified input input</td>
+<td align="left"><code class="computeroutput"><a href="../identity_formatter.html" title="Function template identity_formatter">identity_formatter()</a></code></td>
+</tr>
+<tr>
+<td align="left">empty_formatter</td>
+<td align="left">Null formatter. Always return an empty string</td>
+<td align="left"><code class="computeroutput"><a href="../empty_formatter.html" title="Function template empty_formatter">empty_formatter()</a></code></td>
+</tr>
+<tr>
+<td align="left">regex_formatter</td>
+<td align="left">Regex formatter. Format regex match using the specification in the format string</td>
+<td align="left"><code class="computeroutput"><a href="../id1171494.html" title="Function template regex_formatter">regex_formatter()</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1293094"></a>Iterators</h4></div></div></div>
+<div class="table">
+<a name="id1293097"></a><p class="title"><b>Table 11.9. Find Iterators</b></p>
+<table class="table" summary="Find Iterators">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Iterator name</th>
+<th align="left">Description</th>
+<th align="left">Iterator class</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">find_iterator</td>
+<td align="left">Iterates through matching substrings in the input</td>
+<td align="left"><code class="computeroutput"><a href="../find_iterator.html" title="Class template find_iterator">find_iterator</a></code></td>
+</tr>
+<tr>
+<td align="left">split_iterator</td>
+<td align="left">Iterates through gaps between matching substrings in the input</td>
+<td align="left"><code class="computeroutput"><a href="../split_iterator.html" title="Class template split_iterator">split_iterator</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1293149"></a>Classification</h4></div></div></div>
+<div class="table">
+<a name="id1293152"></a><p class="title"><b>Table 11.10. Predicates</b></p>
+<table class="table" summary="Predicates">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Predicate name</th>
+<th align="left">Description</th>
+<th align="left">Generator</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">is_classified</td>
+<td align="left">Generic <code class="computeroutput">ctype</code> mask based classification</td>
+<td align="left"><code class="computeroutput"><a href="../is_classified.html" title="Function is_classified">is_classified()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_space</td>
+<td align="left">Recognize spaces</td>
+<td align="left"><code class="computeroutput"><a href="../is_space.html" title="Function is_space">is_space()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_alnum</td>
+<td align="left">Recognize alphanumeric characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_alnum.html" title="Function is_alnum">is_alnum()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_alpha</td>
+<td align="left">Recognize letters</td>
+<td align="left"><code class="computeroutput"><a href="../is_alpha.html" title="Function is_alpha">is_alpha()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_cntrl</td>
+<td align="left">Recognize control characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_cntrl.html" title="Function is_cntrl">is_cntrl()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_digit</td>
+<td align="left">Recognize decimal digits</td>
+<td align="left"><code class="computeroutput"><a href="../is_digit.html" title="Function is_digit">is_digit()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_graph</td>
+<td align="left">Recognize graphical characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_graph.html" title="Function is_graph">is_graph()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_lower</td>
+<td align="left">Recognize lower case characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_lower.html" title="Function is_lower">is_lower()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_print</td>
+<td align="left">Recognize printable characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_print.html" title="Function is_print">is_print()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_punct</td>
+<td align="left">Recognize punctuation characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_punct.html" title="Function is_punct">is_punct()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_upper</td>
+<td align="left">Recognize uppercase characters</td>
+<td align="left"><code class="computeroutput"><a href="../is_upper.html" title="Function is_upper">is_upper()</a></code></td>
+</tr>
+<tr>
+<td align="left">is_xdigit</td>
+<td align="left">Recognize hexadecimal digits</td>
+<td align="left"><code class="computeroutput"><a href="../is_xdigit.html" title="Function is_xdigit">is_xdigit()</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 16, 2004 at 09:06:39 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="usage.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="design.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/rationale.html b/doc/html/string_algo/rationale.html
new file mode 100644
index 0000000000..841a9e8f6d
--- /dev/null
+++ b/doc/html/string_algo/rationale.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Rationale</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="../trim.html" title="Function template trim">
+<link rel="next" href="env.html" title="Environment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../trim.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="env.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="string_algo.rationale"></a>Rationale</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="rationale.html#id1356907">Locales</a></span></dt>
+<dt><span class="section"><a href="rationale.html#string_algo.regex">Regular Expressions</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1356907"></a>Locales</h4></div></div></div>
+<p>
+ Locales have a very close relation to string processing. They contain information about
+ the character sets and are used, for example, to change the case of characters and
+ to classify the characters.
+ </p>
+<p>
+ C++ allows to work with multiple different instances of locales at once. If an algorithm
+ manipulates some data in a way that requires the usage of locales, there must be a way
+ to specify them. However, one instance of locales is sufficient for most of the applications,
+ and for a user it could be very tedious to specify which locales to use at every place
+ where it is needed.
+ </p>
+<p>
+ Fortunately, the C++ standard allows to specify the <span class="emphasis"><em>global</em></span> locales (using static member
+ function <code class="computeroutput">std:locale::global()</code>). When instantiating an
+ <code class="computeroutput">std::locale</code> class without explicit information, the instance will
+ be initialized with the <span class="emphasis"><em>global</em></span> locale. This implies, that if an algorithm needs a locale,
+ it should have an <code class="computeroutput">std::locale</code> parameter defaulting to <code class="computeroutput">std::locale()</code>.
+ If a user needs to specify locales explicitly, she can do so. Otherwise the <span class="emphasis"><em>global</em></span>
+ locales are used.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="string_algo.regex"></a>Regular Expressions</h4></div></div></div>
+<p>
+ Regular expressions are an essential part of text processing. For this reason, the library
+ also provides regex variants of some algorithms. The library does not attempt to replace
+ Boost.Regex; it merely wraps its functionality in a new interface.
+ As a part of this library, regex algorithms integrate smoothly with other components, which
+ brings additional value.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 16, 2004 at 09:06:39 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../trim.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="env.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/reference.html b/doc/html/string_algo/reference.html
new file mode 100644
index 0000000000..45e8602a05
--- /dev/null
+++ b/doc/html/string_algo/reference.html
@@ -0,0 +1,763 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="concept.html" title="Concepts">
+<link rel="next" href="../to_lower_copy.html" title="Function to_lower_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concept.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="../to_lower_copy.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="string_algo.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#id1184719">Header &lt;boost/algorithm/string/case_conv.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1174262">Header &lt;boost/algorithm/string/classification.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1212611">Header &lt;boost/algorithm/string/compare.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id907172">Header &lt;boost/algorithm/string/concept.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1178575">Header &lt;boost/algorithm/string/constants.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id904993">Header &lt;boost/algorithm/string/erase.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1102090">Header &lt;boost/algorithm/string/find.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1188068">Header &lt;boost/algorithm/string/find_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1113894">Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id692668">Header &lt;boost/algorithm/string/finder.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1213774">Header &lt;boost/algorithm/string/formatter.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1144873">Header &lt;boost/algorithm/string/predicate.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id687854">Header &lt;boost/algorithm/string/regex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id658329">Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id797239">Header &lt;boost/algorithm/string/replace.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id657172">Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1147531">Header &lt;boost/algorithm/string/split.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id872099">Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id696877">Header &lt;boost/algorithm/string.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1143957">Header &lt;boost/algorithm/string_regex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id907869">Header &lt;boost/algorithm/string/trim.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1184719"></a>Header &lt;<a href="../../../boost/algorithm/string/case_conv.hpp" target="_top">boost/algorithm/string/case_conv.hpp</a>&gt;</h4></div></div></div>
+<p>Defines sequence case-conversion algorithms. Algorithms convert each element in the input sequence to the desired case using provided locales.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../to_lower_copy.html" title="Function to_lower_copy">to_lower_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../to_lower_copy.html" title="Function to_lower_copy">to_lower_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> WritableRangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../to_lower.html" title="Function template to_lower">to_lower</a>(WritableRangeT &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../to_upper_copy.html" title="Function to_upper_copy">to_upper_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                    <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../to_upper_copy.html" title="Function to_upper_copy">to_upper_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> WritableRangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../to_upper.html" title="Function template to_upper">to_upper</a>(WritableRangeT &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1174262"></a>Header &lt;<a href="../../../boost/algorithm/string/classification.hpp" target="_top">boost/algorithm/string/classification.hpp</a>&gt;</h4></div></div></div>
+<p>Classification predicates are included in the library to give some more convenience when using algorithms like <code class="computeroutput">trim()</code> and <code class="computeroutput">all()</code> . They wrap functionality of STL classification functions ( e.g. <code class="computeroutput">std::isspace()</code> ) into generic functors.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_classified.html" title="Function is_classified">is_classified</a>(std::ctype_base::mask,
+                              <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_space.html" title="Function is_space">is_space</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_alnum.html" title="Function is_alnum">is_alnum</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_alpha.html" title="Function is_alpha">is_alpha</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_cntrl.html" title="Function is_cntrl">is_cntrl</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_digit.html" title="Function is_digit">is_digit</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_graph.html" title="Function is_graph">is_graph</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_lower.html" title="Function is_lower">is_lower</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_print.html" title="Function is_print">is_print</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_punct.html" title="Function is_punct">is_punct</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_upper.html" title="Function is_upper">is_upper</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_xdigit.html" title="Function is_xdigit">is_xdigit</a>(<span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_any_of.html" title="Function template is_any_of">is_any_of</a>(<span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../is_from_range.html" title="Function template is_from_range">is_from_range</a>(CharT, CharT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Pred1T, <span class="bold"><strong>typename</strong></span> Pred2T&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id1076705.html" title="Function template operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(<span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred1T &gt; &amp;,
+                             <span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred2T &gt; &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Pred1T, <span class="bold"><strong>typename</strong></span> Pred2T&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id1217789.html" title="Function template operator||"><span class="bold"><strong>operator</strong></span>||</a>(<span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred1T &gt; &amp;,
+                             <span class="bold"><strong>const</strong></span> predicate_facade&lt; Pred2T &gt; &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> PredT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id719223.html" title="Function template operator!"><span class="bold"><strong>operator</strong></span>!</a>(<span class="bold"><strong>const</strong></span> predicate_facade&lt; PredT &gt; &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1212611"></a>Header &lt;<a href="../../../boost/algorithm/string/compare.hpp" target="_top">boost/algorithm/string/compare.hpp</a>&gt;</h4></div></div></div>
+<p>Defines element comparison predicates. Many algorithms in this library can take an additional argument with a predicate used to compare elements. This makes it possible, for instance, to have case insensitive versions of the algorithms.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>struct</strong></span> <a href="../is_equal.html" title="Struct is_equal">is_equal</a>;
+    <span class="bold"><strong>struct</strong></span> <a href="../is_iequal.html" title="Struct is_iequal">is_iequal</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id907172"></a>Header &lt;<a href="../../../boost/algorithm/string/concept.hpp" target="_top">boost/algorithm/string/concept.hpp</a>&gt;</h4></div></div></div>
+<p>Defines concepts used in string_algo library</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> IteratorT&gt; <span class="bold"><strong>struct</strong></span> <a href="../FinderConcept.html" title="Struct template FinderConcept">FinderConcept</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> FormatterT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> IteratorT&gt;
+     <span class="bold"><strong>struct</strong></span> <a href="../FormatterConcept.html" title="Struct template FormatterConcept">FormatterConcept</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1178575"></a>Header &lt;<a href="../../../boost/algorithm/string/constants.hpp" target="_top">boost/algorithm/string/constants.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>enum</strong></span> <a href="../id1178955.html" title="Type token_compress_mode_type">token_compress_mode_type</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id904993"></a>Header &lt;<a href="../../../boost/algorithm/string/erase.hpp" target="_top">boost/algorithm/string/erase.hpp</a>&gt;</h4></div></div></div>
+<p>Defines various erase algorithms. Each algorithm removes part(s) of the input according to a searching criteria.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_range_copy.html" title="Function erase_range_copy">erase_range_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                       <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; RangeT &gt;::type &gt; &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_range_copy.html" title="Function erase_range_copy">erase_range_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                 <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; SequenceT &gt;::type &gt; &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_range.html" title="Function template erase_range">erase_range</a>(SequenceT &amp;,
+                       <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_iterator&lt; SequenceT &gt;::type &gt; &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_first_copy.html" title="Function erase_first_copy">erase_first_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_first_copy.html" title="Function erase_first_copy">erase_first_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_first.html" title="Function template erase_first">erase_first</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ierase_first_copy.html" title="Function ierase_first_copy">ierase_first_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../ierase_first_copy.html" title="Function ierase_first_copy">ierase_first_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                                  <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ierase_first.html" title="Function template ierase_first">ierase_first</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                        <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_last_copy.html" title="Function erase_last_copy">erase_last_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_last_copy.html" title="Function erase_last_copy">erase_last_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_last.html" title="Function template erase_last">erase_last</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ierase_last_copy.html" title="Function ierase_last_copy">ierase_last_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                       <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../ierase_last_copy.html" title="Function ierase_last_copy">ierase_last_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                                 <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ierase_last.html" title="Function template ierase_last">ierase_last</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                       <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_nth_copy.html" title="Function erase_nth_copy">erase_nth_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                     <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_nth_copy.html" title="Function erase_nth_copy">erase_nth_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                               <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_nth.html" title="Function template erase_nth">erase_nth</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ierase_nth_copy.html" title="Function ierase_nth_copy">ierase_nth_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                      <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../ierase_nth_copy.html" title="Function ierase_nth_copy">ierase_nth_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                                <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                                <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ierase_nth.html" title="Function template ierase_nth">ierase_nth</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_all_copy.html" title="Function erase_all_copy">erase_all_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_all_copy.html" title="Function erase_all_copy">erase_all_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_all.html" title="Function template erase_all">erase_all</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ierase_all_copy.html" title="Function ierase_all_copy">ierase_all_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../ierase_all_copy.html" title="Function ierase_all_copy">ierase_all_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                                <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ierase_all.html" title="Function template ierase_all">ierase_all</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_head_copy.html" title="Function erase_head_copy">erase_head_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_head_copy.html" title="Function erase_head_copy">erase_head_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_head.html" title="Function template erase_head">erase_head</a>(SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_tail_copy.html" title="Function erase_tail_copy">erase_tail_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_tail_copy.html" title="Function erase_tail_copy">erase_tail_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_tail.html" title="Function template erase_tail">erase_tail</a>(SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1102090"></a>Header &lt;<a href="../../../boost/algorithm/string/find.hpp" target="_top">boost/algorithm/string/find.hpp</a>&gt;</h4></div></div></div>
+<p>Defines a set of find algorithms. The algorithms are searching for a substring of the input. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the substring.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../find.html" title="Function template find">find</a>(RangeT &amp;, FinderT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../find_first.html" title="Function template find_first">find_first</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../ifind_first.html" title="Function template ifind_first">ifind_first</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                  <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../find_last.html" title="Function template find_last">find_last</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../ifind_last.html" title="Function template ifind_last">ifind_last</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                 <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../find_nth.html" title="Function template find_nth">find_nth</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; Range1T &gt;::type &gt;</span>
+      <a href="../ifind_nth.html" title="Function template ifind_nth">ifind_nth</a>(Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../find_head.html" title="Function template find_head">find_head</a>(RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../find_tail.html" title="Function template find_tail">find_tail</a>(RangeT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../find_token.html" title="Function template find_token">find_token</a>(RangeT &amp;, PredicateT,
+                 token_compress_mode_type = token_compress_off);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1188068"></a>Header &lt;<a href="../../../boost/algorithm/string/find_format.hpp" target="_top">boost/algorithm/string/find_format.hpp</a>&gt;</h4></div></div></div>
+<p>Defines generic replace algorithms. Each algorithm replaces part(s) of the input. The part to be replaced is looked up using a Finder object. Result of finding is then used by a Formatter object to generate the replacement.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT,
+             <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../find_format_copy.html" title="Function find_format_copy">find_format_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, FinderT, FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type">SequenceT</span> <a href="../find_format_copy.html" title="Function find_format_copy">find_format_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, FinderT, FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../find_format.html" title="Function template find_format">find_format</a>(SequenceT &amp;, FinderT, FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT,
+             <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../find_format_all_copy.html" title="Function find_format_all_copy">find_format_all_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, FinderT,
+                           FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type">SequenceT</span> <a href="../find_format_all_copy.html" title="Function find_format_all_copy">find_format_all_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, FinderT, FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> FinderT, <span class="bold"><strong>typename</strong></span> FormatterT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../find_format_all.html" title="Function template find_format_all">find_format_all</a>(SequenceT &amp;, FinderT, FormatterT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id685080.html" title="Function template regex_finder">regex_finder</a>(<span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                               match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT, <span class="bold"><strong>typename</strong></span> AllocT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id1171494.html" title="Function template regex_formatter">regex_formatter</a>(<span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp;,
+                                  match_flag_type = format_default);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1113894"></a>Header &lt;<a href="../../../boost/algorithm/string/find_iterator.hpp" target="_top">boost/algorithm/string/find_iterator.hpp</a>&gt;</h4></div></div></div>
+<p>Defines find iterator classes. Find iterator repeatly applies a Finder to the specified input string to search for matches. Dereferencing the iterator yields the current match or a range between the last and the current match depending on the iterator used.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> IteratorT&gt; <span class="bold"><strong>class</strong></span> <a href="../find_iterator.html" title="Class template find_iterator">find_iterator</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> IteratorT&gt; <span class="bold"><strong>class</strong></span> <a href="../split_iterator.html" title="Class template split_iterator">split_iterator</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+      <span class="type"><a href="../find_iterator.html" title="Class template find_iterator">find_iterator</a>&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../make_find_iterator.html" title="Function template make_find_iterator">make_find_iterator</a>(RangeT &amp;, FinderT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> FinderT&gt;
+      <span class="type"><a href="../split_iterator.html" title="Class template split_iterator">split_iterator</a>&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../make_split_iterator.html" title="Function template make_split_iterator">make_split_iterator</a>(RangeT &amp;, FinderT);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id692668"></a>Header &lt;<a href="../../../boost/algorithm/string/finder.hpp" target="_top">boost/algorithm/string/finder.hpp</a>&gt;</h4></div></div></div>
+<p>Defines Finder generators. Finder object is a functor which is able to find a substring matching a specific criteria in the input. Finders are used as a pluggable components for replace, find and split facilities. This header contains generator functions for finders provided in this library.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../first_finder.html" title="Function first_finder">first_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../first_finder.html" title="Function first_finder">first_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../last_finder.html" title="Function last_finder">last_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../last_finder.html" title="Function last_finder">last_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../nth_finder.html" title="Function nth_finder">nth_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ContainerT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../nth_finder.html" title="Function nth_finder">nth_finder</a>(<span class="bold"><strong>const</strong></span> ContainerT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, PredicateT);
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../head_finder.html" title="Function head_finder">head_finder</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../tail_finder.html" title="Function tail_finder">tail_finder</a>(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../token_finder.html" title="Function template token_finder">token_finder</a>(PredicateT,
+                               token_compress_mode_type = token_compress_off);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ForwardIteratorT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../range_finder.html" title="Function range_finder">range_finder</a>(ForwardIteratorT, ForwardIteratorT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ForwardIteratorT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../range_finder.html" title="Function range_finder">range_finder</a>(iterator_range&lt; ForwardIteratorT &gt;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1213774"></a>Header &lt;<a href="../../../boost/algorithm/string/formatter.hpp" target="_top">boost/algorithm/string/formatter.hpp</a>&gt;</h4></div></div></div>
+<p>Defines Formatter generators. Formatter is a functor which formats a string according to given parameters. A Formatter works in conjunction with a Finder. A Finder can provide additional information for a specific Formatter. An example of such a cooperation is regex_finder and regex_formatter.</p>
+<p>Formatters are used as pluggable components for replace facilities. This header contains generator functions for the Formatters provided in this library.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../const_formatter.html" title="Function template const_formatter">const_formatter</a>(<span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../identity_formatter.html" title="Function template identity_formatter">identity_formatter</a>();
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT&gt; <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../empty_formatter.html" title="Function template empty_formatter">empty_formatter</a>(<span class="bold"><strong>const</strong></span> RangeT &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1144873"></a>Header &lt;<a href="../../../boost/algorithm/string/predicate.hpp" target="_top">boost/algorithm/string/predicate.hpp</a>&gt;</h4></div></div></div>
+<p>Defines string-related predicates. The predicates determine whether a substring is contained in the input string under various conditions: a string starts with the substring, ends with the substring, simply contains the substring or if both strings are equal. Additionaly the algorithm <code class="computeroutput">all()</code> checks all elements of a container to satisfy a condition.</p>
+<p>All predicates provide the strong exception guarantee.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../starts_with.html" title="Function starts_with">starts_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../starts_with.html" title="Function starts_with">starts_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../istarts_with.html" title="Function template istarts_with">istarts_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../ends_with.html" title="Function ends_with">ends_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../ends_with.html" title="Function ends_with">ends_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../iends_with.html" title="Function template iends_with">iends_with</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../contains.html" title="Function contains">contains</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../contains.html" title="Function contains">contains</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../icontains.html" title="Function template icontains">icontains</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                     <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../equals.html" title="Function equals">equals</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../equals.html" title="Function equals">equals</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../iequals.html" title="Function template iequals">iequals</a>(<span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                   <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../all.html" title="Function template all">all</a>(<span class="bold"><strong>const</strong></span> RangeT &amp;, PredicateT);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id687854"></a>Header &lt;<a href="../../../boost/algorithm/string/regex.hpp" target="_top">boost/algorithm/string/regex.hpp</a>&gt;</h4></div></div></div>
+<p>Defines regex variants of the algorithms.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_result_iterator&lt; RangeT &gt;::type &gt;</span>
+      <a href="../find_regex.html" title="Function template find_regex">find_regex</a>(RangeT &amp;, <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                 match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_regex_copy.html" title="Function replace_regex_copy">replace_regex_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                         <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                         <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                         match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type">SequenceT</span> <a href="../replace_regex_copy.html" title="Function replace_regex_copy">replace_regex_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                   <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                                   <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                                   match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_regex.html" title="Function template replace_regex">replace_regex</a>(SequenceT &amp;,
+                         <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                         <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                         match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_all_regex_copy.html" title="Function replace_all_regex_copy">replace_all_regex_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                             <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                             <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                             match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type">SequenceT</span> <a href="../replace_all_regex_copy.html" title="Function replace_all_regex_copy">replace_all_regex_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                       <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                                       <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                                       match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT,
+             <span class="bold"><strong>typename</strong></span> FormatStringTraitsT, <span class="bold"><strong>typename</strong></span> FormatStringAllocatorT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_all_regex.html" title="Function template replace_all_regex">replace_all_regex</a>(SequenceT &amp;,
+                             <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                             <span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;,
+                             match_flag_type = match_default|format_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_regex_copy.html" title="Function erase_regex_copy">erase_regex_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                       <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                       match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_regex_copy.html" title="Function erase_regex_copy">erase_regex_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                 <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                                 match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_regex.html" title="Function template erase_regex">erase_regex</a>(SequenceT &amp;,
+                       <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                       match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../erase_all_regex_copy.html" title="Function erase_all_regex_copy">erase_all_regex_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                           <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                           match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">SequenceT</span> <a href="../erase_all_regex_copy.html" title="Function erase_all_regex_copy">erase_all_regex_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                     <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                                     match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../erase_all_regex.html" title="Function template erase_all_regex">erase_all_regex</a>(SequenceT &amp;,
+                           <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                           match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">SequenceSequenceT &amp;</span>
+      <a href="../find_all_regex.html" title="Function template find_all_regex">find_all_regex</a>(SequenceSequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                     <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                     match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> CharT,
+             <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type">SequenceSequenceT &amp;</span>
+      <a href="../split_regex.html" title="Function template split_regex">split_regex</a>(SequenceSequenceT &amp;, <span class="bold"><strong>const</strong></span> RangeT &amp;,
+                  <span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                  match_flag_type = match_default);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id658329"></a>Header &lt;<a href="../../../boost/algorithm/string/regex_find_format.hpp" target="_top">boost/algorithm/string/regex_find_format.hpp</a>&gt;</h4></div></div></div>
+<p>Defines the <code class="computeroutput">regex_finder</code> and <code class="computeroutput">regex_formatter</code> generators. These two functors are designed to work together. <code class="computeroutput">regex_formatter</code> uses additional information about a match contained in the regex_finder search result.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> RegexTraitsT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id1109157.html" title="Function template regex_finder">regex_finder</a>(<span class="bold"><strong>const</strong></span> basic_regex&lt; CharT, RegexTraitsT &gt; &amp;,
+                               match_flag_type = match_default);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> TraitsT, <span class="bold"><strong>typename</strong></span> AllocT&gt;
+      <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a href="../id869818.html" title="Function template regex_formatter">regex_formatter</a>(<span class="bold"><strong>const</strong></span> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp;,
+                                  match_flag_type = format_default);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id797239"></a>Header &lt;<a href="../../../boost/algorithm/string/replace.hpp" target="_top">boost/algorithm/string/replace.hpp</a>&gt;</h4></div></div></div>
+<p>Defines various replace algorithms. Each algorithm replaces part(s) of the input according to set of searching and replace criteria.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_range_copy.html" title="Function replace_range_copy">replace_range_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                         <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; Range1T &gt;::type &gt; &amp;,
+                         <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../replace_range_copy.html" title="Function replace_range_copy">replace_range_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                   <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_const_iterator&lt; SequenceT &gt;::type &gt; &amp;,
+                                   <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_range.html" title="Function template replace_range">replace_range</a>(SequenceT &amp;,
+                         <span class="bold"><strong>const</strong></span> iterator_range&lt; <span class="bold"><strong>typename</strong></span> range_iterator&lt; SequenceT &gt;::type &gt; &amp;,
+                         <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_first_copy.html" title="Function replace_first_copy">replace_first_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                         <span class="bold"><strong>const</strong></span> Range3T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../replace_first_copy.html" title="Function replace_first_copy">replace_first_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                   <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_first.html" title="Function template replace_first">replace_first</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ireplace_first_copy.html" title="Function ireplace_first_copy">ireplace_first_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                          <span class="bold"><strong>const</strong></span> Range3T &amp;,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range2T, <span class="bold"><strong>typename</strong></span> Range1T&gt;
+      <span class="type">SequenceT</span> <a href="../ireplace_first_copy.html" title="Function ireplace_first_copy">ireplace_first_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                                    <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                    <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ireplace_first.html" title="Function template ireplace_first">ireplace_first</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_last_copy.html" title="Function replace_last_copy">replace_last_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>const</strong></span> Range3T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../replace_last_copy.html" title="Function replace_last_copy">replace_last_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                  <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_last.html" title="Function template replace_last">replace_last</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ireplace_last_copy.html" title="Function ireplace_last_copy">ireplace_last_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                         <span class="bold"><strong>const</strong></span> Range3T &amp;,
+                         <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../ireplace_last_copy.html" title="Function ireplace_last_copy">ireplace_last_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                   <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                                   <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ireplace_last.html" title="Function template ireplace_last">ireplace_last</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                         <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_nth_copy.html" title="Function replace_nth_copy">replace_nth_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                       <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> Range3T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../replace_nth_copy.html" title="Function replace_nth_copy">replace_nth_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                 <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_nth.html" title="Function template replace_nth">replace_nth</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                       <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ireplace_nth_copy.html" title="Function ireplace_nth_copy">ireplace_nth_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> Range3T &amp;,
+                        <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../ireplace_nth_copy.html" title="Function ireplace_nth_copy">ireplace_nth_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                  <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                                  <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ireplace_nth.html" title="Function template ireplace_nth">ireplace_nth</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                        <span class="bold"><strong>const</strong></span> Range2T &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_all_copy.html" title="Function replace_all_copy">replace_all_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                       <span class="bold"><strong>const</strong></span> Range3T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../replace_all_copy.html" title="Function replace_all_copy">replace_all_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                 <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_all.html" title="Function template replace_all">replace_all</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T,
+             <span class="bold"><strong>typename</strong></span> Range3T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../ireplace_all_copy.html" title="Function ireplace_all_copy">ireplace_all_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>const</strong></span> Range3T &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceT</span> <a href="../ireplace_all_copy.html" title="Function ireplace_all_copy">ireplace_all_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;,
+                                  <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                                  <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../ireplace_all.html" title="Function template ireplace_all">ireplace_all</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                        <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_head_copy.html" title="Function replace_head_copy">replace_head_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                        <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../replace_head_copy.html" title="Function replace_head_copy">replace_head_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                                  <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_head.html" title="Function template replace_head">replace_head</a>(SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../replace_tail_copy.html" title="Function replace_tail_copy">replace_tail_copy</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> Range1T &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                        <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type">SequenceT</span> <a href="../replace_tail_copy.html" title="Function replace_tail_copy">replace_tail_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>,
+                                  <span class="bold"><strong>const</strong></span> RangeT &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../replace_tail.html" title="Function template replace_tail">replace_tail</a>(SequenceT &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span>, <span class="bold"><strong>const</strong></span> RangeT &amp;);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id657172"></a>Header &lt;<a href="../../../boost/algorithm/string/sequence_traits.hpp" target="_top">boost/algorithm/string/sequence_traits.hpp</a>&gt;</h4></div></div></div>
+<p>Traits defined in this header are used by various algorithms to achieve better performance for specific containers. Traits provide fail-safe defaults. If a container supports some of these features, it is possible to specialize the specific trait for this container. For lacking compilers, it is possible of define an override for a specific tester function.</p>
+<p>Due to a language restriction, it is not currently possible to define specializations for stl containers without including the corresponding header. To decrease the overhead needed by this inclusion, user can selectively include a specialization header for a specific container. They are located in boost/algorithm/string/stl directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp header which contains specializations for all stl containers.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../has_const_time_erase.html" title="Class template has_const_time_erase">has_const_time_erase</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../has_const_time_insert.html" title="Class template has_const_time_insert">has_const_time_insert</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../has_native_replace.html" title="Class template has_native_replace">has_native_replace</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../has_stable_iterators.html" title="Class template has_stable_iterators">has_stable_iterators</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1147531"></a>Header &lt;<a href="../../../boost/algorithm/string/split.hpp" target="_top">boost/algorithm/string/split.hpp</a>&gt;</h4></div></div></div>
+<p>Defines basic split algorithms. Split algorithms can be used to divide a string into several parts according to given criteria.</p>
+<p>Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code></p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceSequenceT &amp;</span>
+      <a href="../find_all.html" title="Function template find_all">find_all</a>(SequenceSequenceT &amp;, Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> Range1T, <span class="bold"><strong>typename</strong></span> Range2T&gt;
+      <span class="type">SequenceSequenceT &amp;</span>
+      <a href="../ifind_all.html" title="Function template ifind_all">ifind_all</a>(SequenceSequenceT &amp;, Range1T &amp;, <span class="bold"><strong>const</strong></span> Range2T &amp;,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceSequenceT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">SequenceSequenceT &amp;</span>
+      <a href="../id726784.html" title="Function template split">split</a>(SequenceSequenceT &amp;, RangeT &amp;, PredicateT,
+            token_compress_mode_type = token_compress_off);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id872099"></a>Header &lt;<a href="../../../boost/algorithm/string/std_containers_traits.hpp" target="_top">boost/algorithm/string/std_containers_traits.hpp</a>&gt;</h4></div></div></div>
+<p>This file includes sequence traits for stl containers.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id696877"></a>Header &lt;<a href="../../../boost/algorithm/string.hpp" target="_top">boost/algorithm/string.hpp</a>&gt;</h4></div></div></div>
+<p>Cumulative include for string_algo library</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1143957"></a>Header &lt;<a href="../../../boost/algorithm/string_regex.hpp" target="_top">boost/algorithm/string_regex.hpp</a>&gt;</h4></div></div></div>
+<p>Cumulative include for string_algo library. In addtion to string.hpp contains also regex-related stuff.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id907869"></a>Header &lt;<a href="../../../boost/algorithm/string/trim.hpp" target="_top">boost/algorithm/string/trim.hpp</a>&gt;</h4></div></div></div>
+<p>Defines trim algorithms. Trim algorithms are used to remove trailing and leading spaces from a sequence (string). Space is recognized using given locales.</p>
+<p>Parametric (<code class="computeroutput">_if</code> ) variants use a predicate (functor) to select which characters are to be trimmed.. Functions take a selection predicate as a parameter, which is used to determine whether a character is a space. Common predicates are provided in classification.hpp header.</p>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> algorithm {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../trim_left_copy_if.html" title="Function trim_left_copy_if">trim_left_copy_if</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_left_copy_if.html" title="Function trim_left_copy_if">trim_left_copy_if</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_left_copy.html" title="Function template trim_left_copy">trim_left_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                               <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim_left_if.html" title="Function template trim_left_if">trim_left_if</a>(SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim_left.html" title="Function template trim_left">trim_left</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../trim_right_copy_if.html" title="Function trim_right_copy_if">trim_right_copy_if</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_right_copy_if.html" title="Function trim_right_copy_if">trim_right_copy_if</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_right_copy.html" title="Function template trim_right_copy">trim_right_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                                <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim_right_if.html" title="Function template trim_right_if">trim_right_if</a>(SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim_right.html" title="Function template trim_right">trim_right</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">OutputIteratorT</span>
+      <a href="../trim_copy_if.html" title="Function trim_copy_if">trim_copy_if</a>(OutputIteratorT, <span class="bold"><strong>const</strong></span> RangeT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_copy_if.html" title="Function trim_copy_if">trim_copy_if</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type">SequenceT</span> <a href="../trim_copy.html" title="Function template trim_copy">trim_copy</a>(<span class="bold"><strong>const</strong></span> SequenceT &amp;,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim_if.html" title="Function template trim_if">trim_if</a>(SequenceT &amp;, PredicateT);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+      <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../trim.html" title="Function template trim">trim</a>(SequenceT &amp;, <span class="bold"><strong>const</strong></span> std::locale &amp; = std::locale());
+  }
+}</pre>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concept.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="../to_lower_copy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/release_notes.html b/doc/html/string_algo/release_notes.html
new file mode 100644
index 0000000000..940616c5ae
--- /dev/null
+++ b/doc/html/string_algo/release_notes.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Release Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="next" href="usage.html" title="Usage">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../string_algo.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="usage.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="string_algo.release_notes"></a>Release Notes</h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>1.32</strong></span></p>
+<p>Initial release in Boost</p>
+</li>
+<li>
+<p><span class="bold"><strong>1.33</strong></span></p>
+<p>Internal version of collection traits removed, library adapted to Boost.Range</p>
+</li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: April 15, 2005 at 21:05:00 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../string_algo.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="usage.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_algo/usage.html b/doc/html/string_algo/usage.html
new file mode 100644
index 0000000000..3c1c907a1a
--- /dev/null
+++ b/doc/html/string_algo/usage.html
@@ -0,0 +1,382 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Usage</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../string_algo.html" title="Chapter 11. Boost String Algorithms Library">
+<link rel="prev" href="release_notes.html" title="Release Notes">
+<link rel="next" href="quickref.html" title="Quick Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="release_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="quickref.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="string_algo.usage"></a>Usage</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="usage.html#id1290660">First Example</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1290831">Case conversion</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1290885">Predicates and Classification</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1290955">Trimming</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1291015">Find algorithms</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1291126">Replace Algorithms</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1291241">Find Iterator</a></span></dt>
+<dt><span class="section"><a href="usage.html#id1291326">Split</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1290660"></a>First Example</h4></div></div></div>
+<p>
+ Using the algorithms is straightforward. Let us have a look at the first example:
+ </p>
+<pre class="programlisting">
+ #include &lt;boost/algorithm/string.hpp&gt;
+ using namespace std;
+ using namespace boost;
+
+ // ...
+
+ string str1(" hello world! ");
+ to_upper(str1); // str1 == " HELLO WORLD! "
+ trim(str1); // str1 == "HELLO WORLD!"
+
+ string str2=
+ to_lower_copy(
+ ireplace_first_copy(
+ str1,"hello","goodbye")); // str2 == "goodbye world!"
+ </pre>
+<p>
+ This example converts str1 to upper case and trims spaces from the start and the end
+ of the string. str2 is then created as a copy of str1 with "hello" replaced with "goodbye".
+ This example demonstrates several important concepts used in the library:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<p><span class="bold"><strong>Container parameters:</strong></span>
+ Unlike in the STL algorithms, parameters are not specified only in the form
+ of iterators. The STL convention allows for great flexibility,
+ but it has several limitations. It is not possible to <span class="emphasis"><em>stack</em></span> algorithms together,
+ because a container is passed in two parameters. Therefore it is not possible to use
+ a return value from another algorithm. It is considerably easier to write
+ <code class="computeroutput">to_lower(str1)</code>, than <code class="computeroutput">to_lower(str1.begin(), str1.end())</code>.
+ </p>
+<p>
+ The magic of <a href="../../../libs/range/index.html" target="_top">Boost.Range</a>
+ provides a uniform way of handling different string types.
+ If there is a need to pass a pair of iterators,
+ <a href="../../../libs/range/doc/utility_class.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>
+ can be used to package iterators into a structure with a compatible interface.
+ </p>
+</li>
+<li><p><span class="bold"><strong>Copy vs. Mutable:</strong></span>
+ Many algorithms in the library are performing a transformation of the input.
+ The transformation can be done in-place, mutating the input sequence, or a copy
+ of the transformed input can be created, leaving the input intact. None of
+ these possibilities is superior to the other one and both have different
+ advantages and disadvantages. For this reason, both are provided with the library.
+ </p></li>
+<li><p><span class="bold"><strong>Algorithm stacking:</strong></span>
+ Copy versions return a transformed input as a result, thus allow a simple chaining of
+ transformations within one expression (i.e. one can write <code class="computeroutput">trim_copy(to_upper_copy(s))</code>).
+ Mutable versions have <code class="computeroutput">void</code> return, to avoid misuse.
+ </p></li>
+<li><p><span class="bold"><strong>Naming:</strong></span>
+ Naming follows the conventions from the Standard C++ Library. If there is a
+ copy and a mutable version of the same algorithm, the mutable version has no suffix
+ and the copy version has the suffix <span class="emphasis"><em>_copy</em></span>.
+ Some algorithms have the prefix <span class="emphasis"><em>i</em></span>
+ (e.g. <code class="computeroutput"><a href="../ifind_first.html" title="Function template ifind_first">ifind_first()</a></code>).
+ This prefix identifies that the algorithm works in a case-insensitive manner.
+ </p></li>
+</ul></div>
+<p>
+ To use the library, include the <code class="computeroutput"><a href="reference.html#id696877" title="Header &lt;boost/algorithm/string.hpp&gt;">boost/algorithm/string.hpp</a></code> header.
+ If the regex related functions are needed, include the
+ <code class="computeroutput"><a href="reference.html#id1143957" title="Header &lt;boost/algorithm/string_regex.hpp&gt;">boost/algorithm/string_regex.hpp</a></code> header.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1290831"></a>Case conversion</h4></div></div></div>
+<p>
+ STL has a nice way of converting character case. Unfortunately, it works only
+ for a single character and we want to convert a string,
+ </p>
+<pre class="programlisting">
+ string str1("HeLlO WoRld!");
+ to_upper(str1); // str1=="HELLO WORLD!"
+ </pre>
+<p><code class="computeroutput"><a href="../to_upper.html" title="Function template to_upper">to_upper()</a></code> and <code class="computeroutput"><a href="../to_lower.html" title="Function template to_lower">to_lower()</a></code> convert the case of
+ characters in a string using a specified locale.
+ </p>
+<p>
+ For more information see the reference for <code class="computeroutput"><a href="reference.html#id1184719" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">boost/algorithm/string/case_conv.hpp</a></code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1290885"></a>Predicates and Classification</h4></div></div></div>
+<p>
+ A part of the library deals with string related predicates. Consider this example:
+ </p>
+<pre class="programlisting">
+ bool is_executable( string&amp; filename )
+ {
+ return
+ iends_with(filename, ".exe") ||
+ iends_with(filename, ".com");
+ }
+
+ // ...
+ string str1("command.com");
+ cout
+ &lt;&lt; str1
+ &lt;&lt; is_executable("command.com")? "is": "is not"
+ &lt;&lt; "an executable"
+ &lt;&lt; endl; // prints "command.com is an executable"
+
+ //..
+ char text1[]="hello world!";
+ cout
+ &lt;&lt; text1
+ &lt;&lt; all( text1, is_lower() )? "is": "is not"
+ &lt;&lt; " written in the lower case"
+ &lt;&lt; endl; // prints "hello world! is written in the lower case"
+ </pre>
+<p>
+ The predicates determine whether if a substring is contained in the input string
+ under various conditions. The conditions are: a string starts with the substring,
+ ends with the substring,
+ simply contains the substring or if both strings are equal. See the reference for
+ <code class="computeroutput"><a href="reference.html#id1144873" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">boost/algorithm/string/predicate.hpp</a></code> for more details.
+ </p>
+<p>
+ In addition the algorithm <code class="computeroutput"><a href="../all.html" title="Function template all">all()</a></code> checks
+ all elements of a container to satisfy a condition specified by a predicate.
+ This predicate can be any unary predicate, but the library provides a bunch of
+ useful string-related predicates and combinators ready for use.
+ These are located in the <code class="computeroutput"><a href="reference.html#id1174262" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">boost/algorithm/string/classification.hpp</a></code> header.
+ Classification predicates can be combined using logical combinators to form
+ a more complex expressions. For example: <code class="computeroutput">is_from_range('a','z') || is_digit()</code></p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1290955"></a>Trimming</h4></div></div></div>
+<p>
+ When parsing the input from a user, strings usually have unwanted leading or trailing
+ characters. To get rid of them, we need trim functions:
+ </p>
+<pre class="programlisting">
+ string str1=" hello world! ";
+ string str2=trim_left_copy(str1); // str2 == "hello world! "
+ string str3=trim_right_copy(str2); // str3 == " hello world!"
+ trim(str1); // str1 == "hello world!"
+
+ string phone="00423333444";
+ // remove leading 0 from the phone number
+ trim_left_if(phone,is_any_of("0")); // phone == "423333444"
+ </pre>
+<p>
+ It is possible to trim the spaces on the right, on the left or on both sides of a string.
+ And for those cases when there is a need to remove something else than blank space, there
+ are <span class="emphasis"><em>_if</em></span> variants. Using these, a user can specify a functor which will
+ select the <span class="emphasis"><em>space</em></span> to be removed. It is possible to use classification
+ predicates like <code class="computeroutput"><a href="../is_digit.html" title="Function is_digit">is_digit()</a></code> mentioned in the previous paragraph.
+ See the reference for the <code class="computeroutput"><a href="reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">boost/algorithm/string/trim.hpp</a></code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1291015"></a>Find algorithms</h4></div></div></div>
+<p>
+ The library contains a set of find algorithms. Here is an example:
+ </p>
+<pre class="programlisting">
+ char text[]="hello dolly!";
+ iterator_range&lt;char*&gt; result=find_last(text,"ll");
+
+ transform( result.begin(), result.end(), result.begin(), bind2nd(plus&lt;char&gt;(), 1) );
+ // text = "hello dommy!"
+
+ to_upper(result); // text == "hello doMMy!"
+
+ // iterator_range is convertible to bool
+ if(find_first(text, "dolly"))
+ {
+ cout &lt;&lt; "Dolly is there" &lt;&lt; endl;
+ }
+ </pre>
+<p>
+ We have used <code class="computeroutput"><a href="../find_last.html" title="Function template find_last">find_last()</a></code> to search the <code class="computeroutput">text</code> for "ll".
+ The result is given in the <a href="../../../libs/range/doc/utility_class.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>.
+ This range delimits the
+ part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
+
+ As we can see, input of the <code class="computeroutput"><a href="../find_last.html" title="Function template find_last">find_last()</a></code> algorithm can be also
+ char[] because this type is supported by
+ <a href="../" target="_top">Boost.Range</a>.
+
+ The following lines transform the result. Notice that
+ <a href="../../../libs/range/doc/utility_class.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a> has familiar
+ <code class="computeroutput">begin()</code> and <code class="computeroutput">end()</code> methods, so it can be used like any other STL container.
+ Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
+ </p>
+<p>
+ Find algorithms are located in <code class="computeroutput"><a href="reference.html#id1102090" title="Header &lt;boost/algorithm/string/find.hpp&gt;">boost/algorithm/string/find.hpp</a></code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1291126"></a>Replace Algorithms</h4></div></div></div>
+<p>
+ Find algorithms can be used for searching for a specific part of string. Replace goes one step
+ further. After a matching part is found, it is substituted with something else. The substitution is computed
+ from the original, using some transformation.
+ </p>
+<pre class="programlisting">
+ string str1="Hello Dolly, Hello World!"
+ replace_first(str1, "Dolly", "Jane"); // str1 == "Hello Jane, Hello World!"
+ replace_last(str1, "Hello", "Goodbye"); // str1 == "Hello Jane, Goodbye World!"
+ erase_all(str1, " "); // str1 == "HelloJane,GoodbyeWorld!"
+ erase_head(str1, 6); // str1 == "Jane,GoodbyeWorld!"
+ </pre>
+<p>
+ For the complete list of replace and erase functions see the
+ <a href="reference.html" title="Reference">reference</a>.
+ There is a lot of predefined function for common usage, however, the library allows you to
+ define a custom <code class="computeroutput">replace()</code> that suits a specific need. There is a generic <code class="computeroutput"><a href="../find_format.html" title="Function template find_format">find_format()</a></code>
+ function which takes two parameters.
+ The first one is a <a href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> object, the second one is
+ a <a href="concept.html#string_algo.formatter_concept" title="Formatter concept">Formatter</a> object.
+ The Finder object is a functor which performs the searching for the replacement part. The Formatter object
+ takes the result of the Finder (usually a reference to the found substring) and creates a
+ substitute for it. Replace algorithm puts these two together and makes the desired substitution.
+ </p>
+<p>
+ Check <code class="computeroutput"><a href="reference.html#id797239" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">boost/algorithm/string/replace.hpp</a></code>, <code class="computeroutput"><a href="reference.html#id904993" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">boost/algorithm/string/erase.hpp</a></code> and
+ <code class="computeroutput"><a href="reference.html#id1188068" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">boost/algorithm/string/find_format.hpp</a></code> for reference.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1291241"></a>Find Iterator</h4></div></div></div>
+<p>
+ An extension to find algorithms it the Find Iterator. Instead of searching for just a one part of a string,
+ the find iterator allows us to iterate over the substrings matching the specified criteria.
+ This facility is using the <a href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> to incrementally
+ search the string.
+ Dereferencing a find iterator yields an <a href="../../../libs/range/doc/utility_class.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>
+ object, that delimits the current match.
+ </p>
+<p>
+ There are two iterators provided <code class="computeroutput"><a href="../find_iterator.html" title="Class template find_iterator">find_iterator</a></code> and
+ <code class="computeroutput"><a href="../split_iterator.html" title="Class template split_iterator">split_iterator</a></code>. The former iterates over substrings that are found using the specified
+ Finder. The latter iterates over the gaps between these substrings.
+ </p>
+<pre class="programlisting">
+ string str1("abc-*-ABC-*-aBc");
+ // Find all 'abc' substrings (ignoring the case)
+ // Create a find_iterator
+ typedef find_iterator&lt;string::iterator&gt; string_find_iterator;
+ for(string_find_iterator It=
+ make_find_iterator(str1, first_finder("abc", is_iequal()));
+ It!=string_find_iterator();
+ ++It)
+ {
+ cout &lt;&lt; copy_range&lt;std::string&gt;(*It) &lt;&lt; endl;
+ }
+
+ // Output will be:
+ // abc
+ // ABC
+ // aBC
+
+ typedef split_iterator&lt;string::iterator&gt; string_split_iterator;
+ for(string_find_iterator It=
+ make_split_iterator(str1, first_finder("-*-", is_iequal()));
+ It!=string_find_iterator();
+ ++It)
+ {
+ cout &lt;&lt; copy_range&lt;std::string&gt;(*It) &lt;&lt; endl;
+ }
+
+ // Output will be:
+ // abc
+ // ABC
+ // aBC
+ </pre>
+<p>
+ Note that the find iterators have only one template parameter. It is the base iterator type.
+ The Finder is specified at runtime. This allows us to typedef a find iterator for
+ common string types and reuse it. Additionally make_*_iterator functions help
+ to construct a find iterator for a particular range.
+ </p>
+<p>
+ See the reference in <code class="computeroutput"><a href="reference.html#id1113894" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">boost/algorithm/string/find_iterator.hpp</a></code>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1291326"></a>Split</h4></div></div></div>
+<p>
+ Split algorithms are an extension to the find iterator for one common usage scenario.
+ These algorithms use a find iterator and store all matches into the provided
+ container. This container must be able to hold copies (e.g. <code class="computeroutput">std::string</code>) or
+ references (e.g. <code class="computeroutput">iterator_range</code>) of the extracted substrings.
+ </p>
+<p>
+ Two algorithms are provided. <code class="computeroutput"><a href="../find_all.html" title="Function template find_all">find_all()</a></code> finds all copies
+ of a string in the input. <code class="computeroutput"><a href="../id726784.html" title="Function template split">split()</a></code> splits the input into parts.
+ </p>
+<pre class="programlisting">
+ string str1("hello abc-*-ABC-*-aBc goodbye");
+
+ typedef vector&lt; iterator_range&lt;string::iterator&gt; &gt; find_vector_type;
+
+ find_vector_type FindVec; // #1: Search for separators
+ ifind_all( FindVec, str1, "abc" ); // FindVec == { [abc],[ABC],[aBc] }
+
+ typedef vector&lt; string &gt; split_vector_type;
+
+ split_vector_type SplitVec; // #2: Search for tokens
+ split( SplitVec, str1, is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
+ </pre>
+<p><code class="computeroutput">[hello]</code> designates an <code class="computeroutput">iterator_range</code> delimiting this substring.
+ </p>
+<p>
+ First example show how to construct a container to hold references to all extracted
+ substrings. Algorithm <code class="computeroutput"><a href="../ifind_all.html" title="Function template ifind_all">ifind_all()</a></code> puts into FindVec references
+ to all substrings that are in case-insensitive manner equal to "abc".
+ </p>
+<p>
+ Second example uses <code class="computeroutput"><a href="../id726784.html" title="Function template split">split()</a></code> to split string str1 into parts
+ separated by characters '-' or '*'. These parts are then put into the SplitVec.
+ It is possible to specify if adjacent separators are concatenated or not.
+ </p>
+<p>
+ More information can be found in the reference: <code class="computeroutput"><a href="reference.html#id1147531" title="Header &lt;boost/algorithm/string/split.hpp&gt;">boost/algorithm/string/split.hpp</a></code>.
+ </p>
+</div>
+</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 14, 2005 at 19:11:09 GMT</p></small></td>
+<td align="right"><small>Copyright © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="release_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.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="quickref.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/string_parse_tree.html b/doc/html/string_parse_tree.html
new file mode 100644
index 0000000000..f53efaf815
--- /dev/null
+++ b/doc/html/string_parse_tree.html
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template string_parse_tree</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id977101" title="Header &lt;boost/date_time/string_parse_tree.hpp&gt;">
+<link rel="prev" href="parse_match_result.html" title="Struct template parse_match_result">
+<link rel="next" href="gather_month_strings.html" title="Function template gather_month_strings">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_match_result.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977101"><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="gather_month_strings.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="string_parse_tree"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template string_parse_tree</span></h2>
+<p>boost::date_time::string_parse_tree &#8212; Recursive data structure to allow efficient parsing of various strings. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> charT&gt;
+<span class="bold"><strong>struct</strong></span> string_parse_tree {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::multimap&lt; charT, <a href="string_parse_tree.html" title="Struct template string_parse_tree">string_parse_tree</a> &gt; ptree_coll;             
+  <span class="bold"><strong>typedef</strong></span> ptree_coll::value_type                    value_type;             
+  <span class="bold"><strong>typedef</strong></span> ptree_coll::iterator                      iterator;               
+  <span class="bold"><strong>typedef</strong></span> ptree_coll::const_iterator                const_iterator;         
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                string_type;            
+  <span class="bold"><strong>typedef</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; collection_type;        
+  <span class="bold"><strong>typedef</strong></span> parse_match_result&lt; charT &gt;               parse_match_result_type;
+
+  <span class="emphasis"><em>// <a href="string_parse_tree.html#string_parse_treeconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="string_parse_tree.html#id859146-bb">string_parse_tree</a>(collection_type, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> = 0);
+  <a href="string_parse_tree.html#id864206-bb">string_parse_tree</a>(<span class="bold"><strong>short</strong></span> = -1);
+
+  <span class="emphasis"><em>// <a href="string_parse_tree.html#id996832-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="string_parse_tree.html#id1034641-bb">insert</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>) ;
+  <span class="type"><span class="bold"><strong>short</strong></span></span> <a href="string_parse_tree.html#id826653-bb">match</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+              std::istreambuf_iterator&lt; charT &gt; &amp;, parse_match_result_type &amp;,
+              <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">parse_match_result_type</span>
+  <a href="string_parse_tree.html#id690541-bb">match</a>(std::istreambuf_iterator&lt; charT &gt; &amp;,
+        std::istreambuf_iterator&lt; charT &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="string_parse_tree.html#id824250-bb">printme</a>(std::ostream &amp;, <span class="bold"><strong>int</strong></span> &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="string_parse_tree.html#id824284-bb">print</a>(std::ostream &amp;) ;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="string_parse_tree.html#id893022-bb">printmatch</a>(std::ostream &amp;, charT) ;
+
+  ptree_coll m_next_chars;
+  short m_value;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1116100"></a><h2>Description</h2>
+<p>This class provides a quick lookup by building what amounts to a tree data structure. It also features a match function which can can handle nasty input interators by caching values as it recurses the tree so that it can backtrack as needed. </p>
+<div class="refsect2" lang="en">
+<a name="id1116109"></a><h3>
+<a name="string_parse_treeconstruct-copy-destruct"></a><code class="computeroutput">string_parse_tree</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id859146-bb"></a>string_parse_tree(collection_type names, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> starting_point = 0);</pre>
+<p>Parameter "starting_point" desingates where the numbering begins. A starting_point of zero will start the numbering at zero (Sun=0, Mon=1, ...) were a starting_point of one starts the numbering at one (Jan=1, Feb=2, ...). The default is zero, negative vaules are not allowed </p>
+</li>
+<li><pre class="literallayout"><a name="id864206-bb"></a>string_parse_tree(<span class="bold"><strong>short</strong></span> value = -1);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1116181"></a><h3>
+<a name="id996832-bb"></a><code class="computeroutput">string_parse_tree</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1034641-bb"></a>insert(<span class="bold"><strong>const</strong></span> string_type &amp; s, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> value) ;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>short</strong></span></span> <a name="id826653-bb"></a>match(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+            std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+            parse_match_result_type &amp; result, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> &amp; level) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Must check match_results::has_remaining() after match() is called. This is required so the user can determine if stream iterator is already pointing to the expected character or not (match() might advance sitr to next char in stream).</p>
+<p>A parse_match_result that has been returned from a failed match attempt can be sent in to the match function of a different string_parse_tree to attempt a match there. Use the iterators for the partially consumed stream, the parse_match_result object, and '0' for the level parameter. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">parse_match_result_type</span>
+<a name="id690541-bb"></a>match(std::istreambuf_iterator&lt; charT &gt; &amp; sitr,
+      std::istreambuf_iterator&lt; charT &gt; &amp; stream_end) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Must check match_results::has_remaining() after match() is called. This is required so the user can determine if stream iterator is already pointing to the expected character or not (match() might advance sitr to next char in stream). </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id824250-bb"></a>printme(std::ostream &amp; os, <span class="bold"><strong>int</strong></span> &amp; level) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id824284-bb"></a>print(std::ostream &amp; os) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id893022-bb"></a>printmatch(std::ostream &amp; os, charT c) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parse_match_result.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977101"><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="gather_month_strings.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/subsecond_duration.html b/doc/html/subsecond_duration.html
new file mode 100644
index 0000000000..a53818c903
--- /dev/null
+++ b/doc/html/subsecond_duration.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template subsecond_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id829537" title="Header &lt;boost/date_time/time_duration.hpp&gt;">
+<link rel="prev" href="id829552.html" title="Class template time_duration">
+<link rel="next" href="time_formats.html" title="Struct template time_formats">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id829552.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id829537"><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="time_formats.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="subsecond_duration"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template subsecond_duration</span></h2>
+<p>boost::date_time::subsecond_duration &#8212; Template for instantiating derived adjusting durations. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_duration, boost::int64_t frac_of_second&gt;
+<span class="bold"><strong>class</strong></span> subsecond_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> base_duration::traits_type traits_type;
+
+  <span class="emphasis"><em>// <a href="subsecond_duration.html#subsecond_durationconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="subsecond_duration.html#id695051-bb">subsecond_duration</a>(boost::int64_t);
+
+  <span class="emphasis"><em>// <a href="subsecond_duration.html#id691482-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1137705"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1137708"></a><h3>
+<a name="subsecond_durationconstruct-copy-destruct"></a><code class="computeroutput">subsecond_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id695051-bb"></a>subsecond_duration(boost::int64_t ss);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1137742"></a><h3>
+<a name="id691482-bb"></a><code class="computeroutput">subsecond_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id829552.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id829537"><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="time_formats.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/tail_finder.html b/doc/html/tail_finder.html
new file mode 100644
index 0000000000..9742b9a139
--- /dev/null
+++ b/doc/html/tail_finder.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function tail_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="head_finder.html" title="Function head_finder">
+<link rel="next" href="token_finder.html" title="Function template token_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="head_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="token_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="tail_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function tail_finder</span></h2>
+<p>boost::algorithm::tail_finder &#8212; "Tail" finder </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="type"><span class="emphasis"><em>unspecified</em></span></span> tail_finder(<span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> N);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325178"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">tail_finder</code> . The finder returns a tail of a given input. The tail is a suffix of a string up to n elements in size. If an input has less then n elements, whole input is considered a head. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">N</span></dt>
+<dd><p>The size of the head </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">tail_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="head_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="token_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread.html b/doc/html/thread.html
new file mode 100644
index 0000000000..1b92c6c080
--- /dev/null
+++ b/doc/html/thread.html
@@ -0,0 +1,224 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class thread</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1248802" title="Header &lt;boost/thread/thread.hpp&gt;">
+<link rel="prev" href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">
+<link rel="next" href="thread_group.html" title="Class thread_group">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="timed_read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1248802"><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="thread_group.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="thread"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class thread</span></h2>
+<p>boost::thread &#8212; <p>The <a href="thread.html" title="Class thread">thread</a> class represents threads of
+ execution, and provides the functionality to create and manage
+ threads within the library. See
+ <a href="threads.html#threads.glossary" title="Glossary">Glossary</a> for a precise description of
+ <a href="threads.html#threads.glossary.thread">thread of execution</a>,
+ and for definitions of threading-related terms and of thread states such as
+ <a href="threads.html#threads.glossary.thread-state">blocked</a>.</p></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"><strong>class</strong></span> thread : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="thread.html#threadconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="thread.html#id698281-bb">thread</a>();
+  <span class="bold"><strong>explicit</strong></span> <a href="thread.html#id1291929-bb">thread</a>(<span class="bold"><strong>const</strong></span> boost::function0&lt;<span class="bold"><strong>void</strong></span>&gt;&amp;);
+  <a href="thread.html#id732677-bb">~thread</a>();
+
+  <span class="emphasis"><em>// <a href="thread.html#id1145095-bb">comparison</a></em></span>
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="thread.html#id1138943-bb"><span class="bold"><strong>operator</strong></span>==</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="thread.html#id1288634-bb"><span class="bold"><strong>operator</strong></span>!=</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="thread.html#id1007431-bb">modifier</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread.html#id1253588-bb">join</a>();
+
+  <span class="emphasis"><em>// <a href="thread.html#id1178459-bb">static</a></em></span>
+  <span class="bold"><strong>static</strong></span> <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread.html#id974656-bb">sleep</a>(<span class="bold"><strong>const</strong></span> <a href="xtime.html" title="Struct xtime">xtime</a>&amp;);
+  <span class="bold"><strong>static</strong></span> <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread.html#id1245828-bb">yield</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1563475"></a><h2>Description</h2>
+<p>A <a href="threads.html#threads.glossary.thread">thread of execution</a>
+ has an initial function. For the program's initial thread, the initial
+ function is <code class="computeroutput">main()</code>. For other threads, the initial
+ function is <code class="computeroutput">operator()</code> of the function object passed to
+ the <a href="thread.html" title="Class thread">thread</a> object's constructor.</p>
+<p>A thread of execution is said to be "finished"
+ or to have "finished execution" when its initial function returns or
+ is terminated. This includes completion of all thread cleanup
+ handlers, and completion of the normal C++ function return behaviors,
+ such as destruction of automatic storage (stack) objects and releasing
+ any associated implementation resources.</p>
+<p>A thread object has an associated state which is either
+ "joinable" or "non-joinable".</p>
+<p>Except as described below, the policy used by an implementation
+ of to schedule transitions between thread states is
+ unspecified.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Just as the lifetime of a file may be different from the
+ lifetime of an <code class="computeroutput">iostream</code> object which represents the file, the lifetime
+ of a thread of execution may be different from the
+ <a href="thread.html" title="Class thread">thread</a> object which represents the thread of
+ execution. In particular, after a call to <code class="computeroutput">join()</code>,
+ the thread of execution will no longer exist even though the
+ <a href="thread.html" title="Class thread">thread</a> object continues to exist until the
+ end of its normal lifetime. The converse is also possible; if
+ a <a href="thread.html" title="Class thread">thread</a> object is destroyed without
+ <code class="computeroutput">join()</code> first having been called, the thread of execution
+ continues until its initial function completes.</div>
+<div class="refsect2" lang="en">
+<a name="id1563577"></a><h3>
+<a name="threadconstruct-copy-destruct"></a><code class="computeroutput">thread</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id698281-bb"></a>thread();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="thread.html" title="Class thread">thread</a> object
+ representing the current thread of execution.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is non-joinable.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span><code class="computeroutput">*this</code> is valid only within the current thread.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>explicit</strong></span> <a name="id1291929-bb"></a>thread(<span class="bold"><strong>const</strong></span> boost::function0&lt;<span class="bold"><strong>void</strong></span>&gt;&amp; threadfunc);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+
+ Starts a new thread of execution and constructs a
+ <a href="thread.html" title="Class thread">thread</a> object representing it.
+ Copies <code class="computeroutput">threadfunc</code> (which in turn copies
+ the function object wrapped by <code class="computeroutput">threadfunc</code>)
+ to an internal location which persists for the lifetime
+ of the new thread of execution. Calls <code class="computeroutput">operator()</code>
+ on the copy of the <code class="computeroutput">threadfunc</code> function object
+ in the new thread of execution.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is joinable.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <code class="computeroutput">boost::thread_resource_error</code> if a new thread
+ of execution cannot be started.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id732677-bb"></a>~thread();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys <code class="computeroutput">*this</code>. The actual thread of
+ execution may continue to execute after the
+ <a href="thread.html" title="Class thread">thread</a> object has been destroyed.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ If <code class="computeroutput">*this</code> is joinable the actual thread
+ of execution becomes "detached". Any resources used
+ by the thread will be reclaimed when the thread of execution
+ completes. To ensure such a thread of execution runs to completion
+ before the <a href="thread.html" title="Class thread">thread</a> object is destroyed, call
+ <code class="computeroutput">join()</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1563816"></a><h3>
+<a name="id1145095-bb"></a><code class="computeroutput">thread</code> comparison</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1138943-bb"></a><span class="bold"><strong>operator</strong></span>==( rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The thread is non-terminated or <code class="computeroutput">*this</code>
+ is joinable.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">true</code> if <code class="computeroutput">*this</code> and
+ <code class="computeroutput">rhs</code> represent the same thread of
+ execution.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1288634-bb"></a><span class="bold"><strong>operator</strong></span>!=( rhs) <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The thread is non-terminated or <code class="computeroutput">*this</code>
+ is joinable.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">!(*this==rhs)</code>.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1563958"></a><h3>
+<a name="id1007431-bb"></a><code class="computeroutput">thread</code> modifier</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1253588-bb"></a>join();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is joinable.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ The current thread of execution blocks until the
+ initial function of the thread of execution represented by
+ <code class="computeroutput">*this</code> finishes and all resources are
+ reclaimed.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ If <code class="computeroutput">*this == thread()</code> the result is
+ implementation-defined. If the implementation doesn't
+ detect this the result will be
+ <a href="threads.html#threads.glossary.deadlock">deadlock</a>.
+ </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1564044"></a><h3>
+<a name="id1178459-bb"></a><code class="computeroutput">thread</code> static</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>static</strong></span> <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id974656-bb"></a>sleep(<span class="bold"><strong>const</strong></span> <a href="xtime.html" title="Struct xtime">xtime</a>&amp; xt);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ The current thread of execution blocks until
+ <code class="computeroutput">xt</code> is reached.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>static</strong></span> <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1245828-bb"></a>yield();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ The current thread of execution is placed in the
+ <a href="threads.html#threads.glossary.thread-state">ready</a>
+ state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Allow the current thread to give up the rest of its
+ time slice (or other scheduling quota) to another thread.
+ Particularly useful in non-preemptive implementations.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="timed_read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1248802"><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="thread_group.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread/acknowledgements.html b/doc/html/thread/acknowledgements.html
new file mode 100644
index 0000000000..09cafbb654
--- /dev/null
+++ b/doc/html/thread/acknowledgements.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="../threads/release_notes.html" title="Release Notes">
+<link rel="next" href="../tribool.html" title="Chapter 13. Boost.Tribool">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads/release_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../tribool.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="thread.acknowledgements"></a>Acknowledgements</h3></div></div></div>
+<p>William E. Kempf was the architect, designer, and implementor of
+ .</p>
+<p>Mac OS Carbon implementation written by Mac Murrett.</p>
+<p>Dave Moore provided initial submissions and further comments on the
+ <code class="computeroutput">barrier</code>
+ ,
+ <code class="computeroutput">thread_pool</code>
+ ,
+ <code class="computeroutput">read_write_mutex</code>
+ ,
+ <code class="computeroutput">read_write_try_mutex</code>
+ and
+ <code class="computeroutput">read_write_timed_mutex</code>
+ classes.</p>
+<p>Important contributions were also made by Jeremy Siek (lots of input
+ on the design and on the implementation), Alexander Terekhov (lots of input
+ on the Win32 implementation, especially in regards to boost::condition, as
+ well as a lot of explanation of POSIX behavior), Greg Colvin (lots of input
+ on the design), Paul Mclachlan, Thomas Matelich and Iain Hanson (for help
+ in trying to get the build to work on other platforms), and Kevin S. Van
+ Horn (for several updates/corrections to the documentation).</p>
+<p>Mike Glassford finished changes to that were begun
+ by William Kempf and moved them into the main CVS branch.
+ He also addressed a number of issues that were brought up on the Boost
+ developer's mailing list and provided some additions and changes to the
+ read_write_mutex and related classes.</p>
+<p>The documentation was written by William E. Kempf. Beman Dawes
+ provided additional documentation material and editing.
+ Mike Glassford finished William Kempf's conversion of the documentation to
+ BoostBook format and added a number of new sections.</p>
+<p>Discussions on the boost.org mailing list were essential in the
+ development of
+ . As of August 1, 2001, participants included Alan Griffiths, Albrecht
+ Fritzsche, Aleksey Gurtovoy, Alexander Terekhov, Andrew Green, Andy Sawyer,
+ Asger Alstrup Nielsen, Beman Dawes, Bill Klein, Bill Rutiser, Bill Wade,
+ Branko ibej, Brent Verner, Craig Henderson, Csaba Szepesvari,
+ Dale Peakall, Damian Dixon, Dan Nuffer, Darryl Green, Daryle Walker, David
+ Abrahams, David Allan Finch, Dejan Jelovic, Dietmar Kuehl, Douglas Gregor,
+ Duncan Harris, Ed Brey, Eric Swanson, Eugene Karpachov, Fabrice Truillot,
+ Frank Gerlach, Gary Powell, Gernot Neppert, Geurt Vos, Ghazi Ramadan, Greg
+ Colvin, Gregory Seidman, HYS, Iain Hanson, Ian Bruntlett, J Panzer, Jeff
+ Garland, Jeff Paquette, Jens Maurer, Jeremy Siek, Jesse Jones, Joe Gottman,
+ John (EBo) David, John Bandela, John Maddock, John Max Skaller, John
+ Panzer, Jon Jagger , Karl Nelson, Kevlin Henney, KG Chandrasekhar, Levente
+ Farkas, Lie-Quan Lee, Lois Goldthwaite, Luis Pedro Coelho, Marc Girod, Mark
+ A. Borgerding, Mark Rodgers, Marshall Clow, Matthew Austern, Matthew Hurd,
+ Michael D. Crawford, Michael H. Cox , Mike Haller, Miki Jovanovic, Nathan
+ Myers, Paul Moore, Pavel Cisler, Peter Dimov, Petr Kocmid, Philip Nash,
+ Rainer Deyke, Reid Sweatman, Ross Smith, Scott McCaskill, Shalom Reich,
+ Steve Cleary, Steven Kirk, Thomas Holenstein, Thomas Matelich, Trevor
+ Perrin, Valentin Bonnard, Vesa Karvonen, Wayne Miller, and William
+ Kempf.</p>
+<p>Apologies for anyone inadvertently missed.</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: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads/release_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../tribool.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread/build.html b/doc/html/thread/build.html
new file mode 100644
index 0000000000..e6ed0f169a
--- /dev/null
+++ b/doc/html/thread/build.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Build</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="configuration.html" title="Configuration">
+<link rel="next" href="../threads/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.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="configuration.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../threads/implementation_notes.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="thread.build"></a>Build</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="build.html#thread.build.building">Building the Libraries</a></span></dt>
+<dt><span class="section"><a href="build.html#thread.build.testing">Testing the Libraries</a></span></dt>
+</dl></div>
+<p>
+ How you build the libraries, and how you build your own applications
+ that use those libraries, are some of the most frequently asked questions. Build
+ processes are difficult to deal with in a portable manner. That's one reason
+ why makes use of .
+ In general you should refer to the documentation for .
+ This document will only supply you with some simple usage examples for how to
+ use <span class="emphasis"><em>bjam</em></span> to build and test . In addition, this document
+ will try to explain the build requirements so that users may create their own
+ build processes (for instance, create an IDE specific project), both for building
+ and testing , as well as for building their own projects using
+ .
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.build.building"></a>Building the Libraries</h4></div></div></div>
+<p>
+ To build the libraries using , simply change to the
+ directory <span class="emphasis"><em>boost_root</em></span>/libs/thread/build and execute the command:
+ </p>
+<pre class="programlisting">bjam -sTOOLS=<span class="emphasis"><em>toolset</em></span></pre>
+<p>
+ This will create the debug and the release builds of the library.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Invoking the above command in <span class="emphasis"><em>boost_root</em></span> will build all of
+ the Boost distribution, including .</div>
+<p>
+ The Jamfile supplied with produces a dynamic link library named
+ <span class="emphasis"><em>boost_thread{build-specific-tags}.{extension}</em></span>, where the build-specific
+ tags indicate the toolset used to build the library, whether it's a debug or release
+ build, what version of Boost was used, etc.; and the extension is the appropriate extension
+ for a dynamic link library for the platform for which is being built.
+ For instance, a debug library built for Win32 with VC++ 7.1 using Boost 1.31 would
+ be named <span class="emphasis"><em>boost_thread-vc71-mt-gd-1_31.dll</em></span>.
+ </p>
+<p>
+ The source files that are used to create the library
+ are all of the *.cpp files found in <span class="emphasis"><em>boost_root</em></span>/libs/thread/src.
+ These need to be built with the compiler's and linker's multi-threading support enabled.
+ If you want to create your own build solution you'll have to follow these same
+ guidelines. One of the most frequently reported problems when trying to do this
+ occurs from not enabling the compiler's and linker's support for multi-threading.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.build.testing"></a>Testing the Libraries</h4></div></div></div>
+<p>
+ To test the libraries using , simply change to the
+ directory <span class="emphasis"><em>boost_root</em></span>/libs/thread/test and execute the command:
+ </p>
+<pre class="programlisting">bjam -sTOOLS=<span class="emphasis"><em>toolset</em></span> test</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="configuration.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../threads/implementation_notes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread/configuration.html b/doc/html/thread/configuration.html
new file mode 100644
index 0000000000..82b2ba660d
--- /dev/null
+++ b/doc/html/thread/configuration.html
@@ -0,0 +1,125 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Configuration</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="../threads/faq.html" title="Frequently Asked Questions">
+<link rel="next" href="build.html" title="Build">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads/faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="build.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="thread.configuration"></a>Configuration</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="configuration.html#thread.configuration.public">Library Defined Public Macros</a></span></dt>
+<dt><span class="section"><a href="configuration.html#thread.configuration.implementation">Library Defined Implementation Macros</a></span></dt>
+</dl></div>
+<p> uses several configuration macros in &lt;boost/config.hpp&gt;,
+ as well as configuration macros meant to be supplied by the application. These
+ macros are documented here.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.configuration.public"></a>Library Defined Public Macros</h4></div></div></div>
+<p>
+ These macros are defined by but are expected to be used
+ by application code.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Macro</th>
+<th>Meaning</th>
+</tr></thead>
+<tbody><tr>
+<td>BOOST_HAS_THREADS</td>
+<td>
+ Indicates that threading support is available. This means both that there
+ is a platform specific implementation for and that
+ threading support has been enabled in a platform specific manner. For instance,
+ on the Win32 platform there's an implementation for
+ but unless the program is compiled against one of the multithreading runtimes
+ (often determined by the compiler predefining the macro _MT) the BOOST_HAS_THREADS
+ macro remains undefined.
+ </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="thread.configuration.implementation"></a>Library Defined Implementation Macros</h4></div></div></div>
+<p>
+ These macros are defined by and are implementation details
+ of interest only to implementors.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Macro</th>
+<th>Meaning</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>BOOST_HAS_WINTHREADS</td>
+<td>
+ Indicates that the platform has the Microsoft Win32 threading libraries,
+ and that they should be used to implement .
+ </td>
+</tr>
+<tr>
+<td>BOOST_HAS_PTHREADS</td>
+<td>
+ Indicates that the platform has the POSIX pthreads libraries, and that
+ they should be used to implement .
+ </td>
+</tr>
+<tr>
+<td>BOOST_HAS_FTIME</td>
+<td>
+ Indicates that the implementation should use GetSystemTimeAsFileTime()
+ and the FILETIME type to calculate the current time. This is an implementation
+ detail used by boost::detail::getcurtime().
+ </td>
+</tr>
+<tr>
+<td>BOOST_HAS_GETTTIMEOFDAY</td>
+<td>
+ Indicates that the implementation should use gettimeofday() to calculate
+ the current time. This is an implementation detail used by boost::detail::getcurtime().
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads/faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="build.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread_group.html b/doc/html/thread_group.html
new file mode 100644
index 0000000000..24c13db404
--- /dev/null
+++ b/doc/html/thread_group.html
@@ -0,0 +1,132 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class thread_group</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1248802" title="Header &lt;boost/thread/thread.hpp&gt;">
+<link rel="prev" href="thread.html" title="Class thread">
+<link rel="next" href="thread_specific_ptr.html" title="Class thread_specific_ptr">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1248802"><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="thread_specific_ptr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="thread_group"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class thread_group</span></h2>
+<p>boost::thread_group &#8212;
+ The <a href="thread_group.html" title="Class thread_group">thread_group</a> class provides a container
+ for easy grouping of threads to simplify several common thread
+ creation and management idioms.
+ </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"><strong>class</strong></span> thread_group : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="thread_group.html#thread_groupconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="thread_group.html#id657106-bb">thread_group</a>();
+  <a href="thread_group.html#id892819-bb">~thread_group</a>();
+
+  <span class="emphasis"><em>// <a href="thread_group.html#id859920-bb">modifier</a></em></span>
+  <span class="type"><a href="thread.html" title="Class thread">thread</a>*</span> <a href="thread_group.html#id1171912-bb">create_thread</a>(<span class="bold"><strong>const</strong></span> boost::function0&lt;<span class="bold"><strong>void</strong></span>&gt;&amp;);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread_group.html#id1250288-bb">add_thread</a>(<a href="thread.html" title="Class thread">thread</a>* thrd);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread_group.html#id824434-bb">remove_thread</a>(<a href="thread.html" title="Class thread">thread</a>* thrd);
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread_group.html#id799018-bb">join_all</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1564348"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1564351"></a><h3>
+<a name="thread_groupconstruct-copy-destruct"></a><code class="computeroutput">thread_group</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id657106-bb"></a>thread_group();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs an empty <a href="thread_group.html" title="Class thread_group">thread_group</a>
+ container.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id892819-bb"></a>~thread_group();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys each contained thread object. Destroys <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Behavior is undefined if another thread references
+ <code class="computeroutput">*this </code> during the execution of the destructor.
+ </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1564443"></a><h3>
+<a name="id859920-bb"></a><code class="computeroutput">thread_group</code> modifier</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><a href="thread.html" title="Class thread">thread</a>*</span> <a name="id1171912-bb"></a>create_thread(<span class="bold"><strong>const</strong></span> boost::function0&lt;<span class="bold"><strong>void</strong></span>&gt;&amp; threadfunc);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Creates a new <a href="thread.html" title="Class thread">thread</a> object
+ that executes <code class="computeroutput">threadfunc</code> and adds it to the
+ <code class="computeroutput">thread_group</code> container object's list of managed
+ <a href="thread.html" title="Class thread">thread</a> objects.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ Pointer to the newly created
+ <a href="thread.html" title="Class thread">thread</a> object.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1250288-bb"></a>add_thread(<a href="thread.html" title="Class thread">thread</a>* thrd thrd);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Adds <code class="computeroutput">thrd</code> to the
+ <a href="thread_group.html" title="Class thread_group">thread_group</a> object's list of managed
+ <a href="thread.html" title="Class thread">thread</a> objects. The <code class="computeroutput">thrd</code>
+ object must have been allocated via <code class="computeroutput">operator new</code> and will
+ be deleted when the group is destroyed.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id824434-bb"></a>remove_thread(<a href="thread.html" title="Class thread">thread</a>* thrd thrd);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Removes <code class="computeroutput">thread</code> from <code class="computeroutput">*this</code>'s
+ list of managed <a href="thread.html" title="Class thread">thread</a> objects.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <span class="bold"><strong>???</strong></span> if
+ <code class="computeroutput">thrd</code> is not in <code class="computeroutput">*this</code>'s list
+ of managed <a href="thread.html" title="Class thread">thread</a> objects.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id799018-bb"></a>join_all();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Calls <code class="computeroutput">join()</code> on each of the managed
+ <a href="thread.html" title="Class thread">thread</a> objects.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1248802"><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="thread_specific_ptr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread_resource_error.html b/doc/html/thread_resource_error.html
new file mode 100644
index 0000000000..dda2b2ad58
--- /dev/null
+++ b/doc/html/thread_resource_error.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class thread_resource_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id824356" title="Header &lt;boost/thread/exceptions.hpp&gt;">
+<link rel="prev" href="lock_error.html" title="Class lock_error">
+<link rel="next" href="mutex.html" title="Class mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lock_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id824356"><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="mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="thread_resource_error"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class thread_resource_error</span></h2>
+<p>boost::thread_resource_error &#8212; <p>The <a href="thread_resource_error.html" title="Class thread_resource_error">thread_resource_error</a> class
+ defines an exception type that is thrown by constructors in the
+ library when thread-related resources can not be
+ acquired.</p></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"><strong>class</strong></span> thread_resource_error : <span class="bold"><strong>public</strong></span> <span class="type">std::runtime_error</span> {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="thread_resource_error.html#thread_resource_errorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="thread_resource_error.html#id1011234-bb">thread_resource_error</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1558227"></a><h2>Description</h2>
+<p><a href="thread_resource_error.html" title="Class thread_resource_error">thread_resource_error</a> is used
+ only when thread-related resources cannot be acquired; memory
+ allocation failures are indicated by
+ std::bad_alloc.</p>
+<div class="refsect2" lang="en">
+<a name="id1558242"></a><h3>
+<a name="thread_resource_errorconstruct-copy-destruct"></a><code class="computeroutput">thread_resource_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1011234-bb"></a>thread_resource_error();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <code class="computeroutput">thread_resource_error</code>
+ object.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lock_error.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id824356"><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="mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/thread_specific_ptr.html b/doc/html/thread_specific_ptr.html
new file mode 100644
index 0000000000..81e6478924
--- /dev/null
+++ b/doc/html/thread_specific_ptr.html
@@ -0,0 +1,251 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class thread_specific_ptr</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id1220687" title="Header &lt;boost/thread/tss.hpp&gt;">
+<link rel="prev" href="thread_group.html" title="Class thread_group">
+<link rel="next" href="id869148.html" title="Type xtime_clock_types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_group.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1220687"><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="id869148.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="thread_specific_ptr"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class thread_specific_ptr</span></h2>
+<p>boost::thread_specific_ptr &#8212;
+ The <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a> class defines
+ an interface for using thread specific storage.
+ </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"><strong>class</strong></span> thread_specific_ptr : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="thread_specific_ptr.html#thread_specific_ptrconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="thread_specific_ptr.html#id1256792-bb">thread_specific_ptr</a>();
+  <a href="thread_specific_ptr.html#id1182613-bb">thread_specific_ptr</a>(<span class="bold"><strong>void</strong></span> (*cleanup)(<span class="bold"><strong>void</strong></span>*));
+  <a href="thread_specific_ptr.html#id657055-bb">~thread_specific_ptr</a>();
+
+  <span class="emphasis"><em>// <a href="thread_specific_ptr.html#id1208148-bb">modifier functions</a></em></span>
+  <span class="type">T*</span> <a href="thread_specific_ptr.html#id824439-bb">release</a>();
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="thread_specific_ptr.html#id1038351-bb">reset</a>(T* = 0);
+
+  <span class="emphasis"><em>// <a href="thread_specific_ptr.html#id1009546-bb">observer functions</a></em></span>
+  <span class="type">T*</span> <a href="thread_specific_ptr.html#id1213997-bb">get</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T*</span> <a href="thread_specific_ptr.html#id658761-bb"><span class="bold"><strong>operator</strong></span>-&gt;</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">T&amp;</span> <a href="thread_specific_ptr.html#id687750-bb"><span class="bold"><strong>operator</strong></span>*()</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1564986"></a><h2>Description</h2>
+<p>Thread specific storage is data associated with
+ individual threads and is often used to make operations
+ that rely on global data
+ <a href="threads.html#threads.glossary.thread-safe">thread-safe</a>.
+ </p>
+<p>Template <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a>
+ stores a pointer to an object obtained on a thread-by-thread
+ basis and calls a specified cleanup handler on the contained
+ pointer when the thread terminates. The cleanup handlers are
+ called in the reverse order of construction of the
+ <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a>s, and for the
+ initial thread are called by the destructor, providing the
+ same ordering guarantees as for normal declarations. Each
+ thread initially stores the null pointer in each
+ <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a> instance.</p>
+<p>The template <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a>
+ is useful in the following cases:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>An interface was originally written assuming
+ a single thread of control and it is being ported to a
+ multithreaded environment.</li>
+<li>Each thread of control invokes sequences of
+ methods that share data that are physically unique
+ for each thread, but must be logically accessed
+ through a globally visible access point instead of
+ being explicitly passed.</li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1565058"></a><h3>
+<a name="thread_specific_ptrconstruct-copy-destruct"></a><code class="computeroutput">thread_specific_ptr</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1256792-bb"></a>thread_specific_ptr();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ The expression <code class="computeroutput">delete get()</code> is well
+ formed.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ A thread-specific data key is allocated and visible to
+ all threads in the process. Upon creation, the value
+ <code class="computeroutput">NULL</code> will be associated with the new key in all
+ active threads. A cleanup method is registered with the key
+ that will call <code class="computeroutput">delete</code> on the value associated
+ with the key for a thread when it exits. When a thread exits,
+ if a key has a registered cleanup method and the thread has a
+ non-<code class="computeroutput">NULL</code> value associated with that key, the value
+ of the key is set to <code class="computeroutput">NULL</code> and then the cleanup
+ method is called with the previously associated value as its
+ sole argument. The order in which registered cleanup methods
+ are called when a thread exits is undefined. If after all the
+ cleanup methods have been called for all non-<code class="computeroutput">NULL</code>
+ values, there are still some non-<code class="computeroutput">NULL</code> values
+ with associated cleanup handlers the result is undefined
+ behavior.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="thread_resource_error.html" title="Class thread_resource_error">boost::thread_resource_error</a> if
+ the necessary resources can not be obtained.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ There may be an implementation specific limit to the
+ number of thread specific storage objects that can be created,
+ and this limit may be small.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ The most common need for cleanup will be to call
+ <code class="computeroutput">delete</code> on the associated value. If other forms
+ of cleanup are required the overloaded constructor should be
+ called instead.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1182613-bb"></a>thread_specific_ptr(<span class="bold"><strong>void</strong></span> (*cleanup)(<span class="bold"><strong>void</strong></span>*) cleanup);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ A thread-specific data key is allocated and visible to
+ all threads in the process. Upon creation, the value
+ <code class="computeroutput">NULL</code> will be associated with the new key in all
+ active threads. The <code class="computeroutput">cleanup</code> method is registered
+ with the key and will be called for a thread with the value
+ associated with the key for that thread when it exits. When a
+ thread exits, if a key has a registered cleanup method and the
+ thread has a non-<code class="computeroutput">NULL</code> value associated with that
+ key, the value of the key is set to <code class="computeroutput">NULL</code> and then
+ the cleanup method is called with the previously associated
+ value as its sole argument. The order in which registered
+ cleanup methods are called when a thread exits is undefined.
+ If after all the cleanup methods have been called for all
+ non-<code class="computeroutput">NULL</code> values, there are still some
+ non-<code class="computeroutput">NULL</code> values with associated cleanup handlers
+ the result is undefined behavior.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ <a href="thread_resource_error.html" title="Class thread_resource_error">boost::thread_resource_error</a> if
+ the necessary resources can not be obtained.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ There may be an implementation specific limit to the
+ number of thread specific storage objects that can be created,
+ and this limit may be small.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ There is the occasional need to register
+ specialized cleanup methods, or to register no cleanup method
+ at all (done by passing <code class="computeroutput">NULL</code> to this constructor.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id657055-bb"></a>~thread_specific_ptr();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Deletes the thread-specific data key allocated by the
+ constructor. The thread-specific data values associated with
+ the key need not be <code class="computeroutput">NULL</code>. It is the responsibility
+ of the application to perform any cleanup actions for data
+ associated with the key.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Does not destroy any data that may be stored in any
+ thread's thread specific storage. For this reason you should
+ not destroy a <a href="thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a> object
+ until you are certain there are no threads running that have
+ made use of its thread specific storage.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Associated data is not cleaned up because registered
+ cleanup methods need to be run in the thread that allocated the
+ associated data to be guarranteed to work correctly. There's no
+ safe way to inject the call into another thread's execution
+ path, making it impossible to call the cleanup methods safely.
+ </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1565378"></a><h3>
+<a name="id1208148-bb"></a><code class="computeroutput">thread_specific_ptr</code> modifier functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id824439-bb"></a>release();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> holds the null pointer
+ for the current thread.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">this-&gt;get()</code> prior to the call.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ This method provides a mechanism for the user to
+ relinquish control of the data associated with the
+ thread-specific key.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1038351-bb"></a>reset(T* p = 0);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If <code class="computeroutput">this-&gt;get() != p &amp;&amp;
+ this-&gt;get() != NULL</code> then call the
+ associated cleanup function.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> holds the pointer
+ <code class="computeroutput">p</code> for the current thread.</p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1565499"></a><h3>
+<a name="id1009546-bb"></a><code class="computeroutput">thread_specific_ptr</code> observer functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id1213997-bb"></a>get() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ The object stored in thread specific storage for
+ the current thread for <code class="computeroutput">*this</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ Each thread initially returns 0.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T*</span> <a name="id658761-bb"></a><span class="bold"><strong>operator</strong></span>-&gt;() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">this-&gt;get()</code>.</p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T&amp;</span> <a name="id687750-bb"></a><span class="bold"><strong>operator</strong></span>*()() <span class="bold"><strong>const</strong></span>;</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">this-&gt;get() != 0</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">this-&gt;get()</code>.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread_group.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id1220687"><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="id869148.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads.html b/doc/html/threads.html
index 23aa028e9f..df47966095 100644
--- a/doc/html/threads.html
+++ b/doc/html/threads.html
@@ -1,10 +1,650 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/threads.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/threads.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/threads.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 12. Boost.Threads</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="string_algo/credits.html" title="Credits">
+<link rel="next" href="threads/design.html" title="Design">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_algo/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="threads/design.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="threads"></a>Chapter 12. Boost.Threads</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">William</span> <span class="othername">E.</span> <span class="surname">Kempf</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2001-2003 William E. Kempf</p></div>
+<div><div class="legalnotice">
+<a name="id1357153"></a><p>Permission to use, copy, modify, distribute and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in all
+ copies and that both that copyright notice and this permission notice
+ appear in supporting documentation. William E. Kempf makes no
+ representations about the suitability of this software for any purpose.
+ It is provided "as is" without express or implied warranty.</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="threads.html#threads.overview">Overview</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads.html#threads.introduction">Introduction</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357232">Dangers</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357380">C++ Standard Library usage in multithreaded programs</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357511">Common guarantees for all components</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/design.html">Design</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads/design.html#threads.design.goals">Goals</a></span></dt>
+<dt><span class="section"><a href="threads/design.html#id1357741">Iterative Phases</a></span></dt>
+<dt><span class="section"><a href="threads/design.html#id1357751">Phase 1, Synchronization Primitives</a></span></dt>
+<dt><span class="section"><a href="threads/design.html#threads.design.phase2">Phase 2, Thread Management and Thread Specific Storage</a></span></dt>
+<dt><span class="section"><a href="threads/design.html#id1357895">The Next Phase</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/concepts.html">Concepts</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads/concepts.html#threads.concepts.mutexes">Mutexes</a></span></dt>
+<dt><span class="section"><a href="threads/concepts.html#threads.concepts.read-write-mutexes">Read/Write Mutexes</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/rationale.html">Rationale</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads/rationale.html#threads.rationale.Boost.Threads">Rationale for the Creation of </a></span></dt>
+<dt><span class="section"><a href="threads/rationale.html#threads.rationale.primitives">Rationale for the Low Level Primitives Supported in </a></span></dt>
+<dt><span class="section"><a href="threads/rationale.html#threads.rationale.locks">Rationale for the Lock Design</a></span></dt>
+<dt><span class="section"><a href="threads/rationale.html#threads.rationale.non-copyable">Rationale for NonCopyable Thread Type</a></span></dt>
+<dt><span class="section"><a href="threads/rationale.html#threads.rationale.events">Rationale for not providing <span class="emphasis"><em>Event Variables</em></span></a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="threads/reference.html#id759234">Header &lt;boost/thread/barrier.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id928670">Header &lt;boost/thread/condition.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id824356">Header &lt;boost/thread/exceptions.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id868118">Header &lt;boost/thread/mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id718104">Header &lt;boost/thread/once.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id1172185">Header &lt;boost/thread/recursive_mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id693680">Header &lt;boost/thread/read_write_mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id1248802">Header &lt;boost/thread/thread.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id1220687">Header &lt;boost/thread/tss.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="threads/reference.html#id997727">Header &lt;boost/thread/xtime.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/faq.html">Frequently Asked Questions</a></span></dt>
+<dt><span class="section"><a href="thread/configuration.html">Configuration</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="thread/configuration.html#thread.configuration.public">Library Defined Public Macros</a></span></dt>
+<dt><span class="section"><a href="thread/configuration.html#thread.configuration.implementation">Library Defined Implementation Macros</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="thread/build.html">Build</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="thread/build.html#thread.build.building">Building the Libraries</a></span></dt>
+<dt><span class="section"><a href="thread/build.html#thread.build.testing">Testing the Libraries</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="threads/implementation_notes.html">Implementation Notes</a></span></dt>
+<dd><dl><dt><span class="section"><a href="threads/implementation_notes.html#threads.implementation_notes.win32">Win32</a></span></dt></dl></dd>
+<dt><span class="section"><a href="threads/release_notes.html">Release Notes</a></span></dt>
+<dd><dl><dt><span class="section"><a href="threads/release_notes.html#threads.release_notes.boost_1_32_0">Boost 1.32.0</a></span></dt></dl></dd>
+<dt><span class="glossary"><a href="threads.html#threads.glossary">Glossary</a></span></dt>
+<dt><span class="section"><a href="thread/acknowledgements.html">Acknowledgements</a></span></dt>
+<dt><span class="bibliography"><a href="threads.html#threads.bibliography">Bibliography</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="threads.overview"></a>Overview</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="threads.html#threads.introduction">Introduction</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357232">Dangers</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357380">C++ Standard Library usage in multithreaded programs</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357511">Common guarantees for all components</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.introduction"></a>Introduction</h4></div></div></div>
+<p> allows C++ programs to execute as multiple,
+ asynchronous, independent threads-of-execution. Each thread has its own
+ machine state including program instruction counter and registers. Programs
+ which execute as multiple threads are called multithreaded programs to
+ distinguish them from traditional single-threaded programs. The <a href="threads.html#threads.glossary" title="Glossary">glossary</a> gives a more complete description
+ of the multithreading execution environment.</p>
+<p>Multithreading provides several advantages:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Programs which would otherwise block waiting for some external
+ event can continue to respond if the blocking operation is placed in a
+ separate thread. Multithreading is usually an absolute requirement for
+ these programs.</p></li>
+<li><p>Well-designed multithreaded programs may execute faster than
+ single-threaded programs, particularly on multiprocessor hardware.
+ Note, however, that poorly-designed multithreaded programs are often
+ slower than single-threaded programs.</p></li>
+<li><p>Some program designs may be easier to formulate using a
+ multithreaded approach. After all, the real world is
+ asynchronous!</p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357232"></a>Dangers</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="threads.html#id1357235">General considerations</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357310">Testing and debugging considerations</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357348">Getting a head start</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357235"></a>General considerations</h5></div></div></div>
+<p>Beyond the errors which can occur in single-threaded programs,
+ multithreaded programs are subject to additional errors:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="threads.html#threads.glossary.race-condition">Race
+ conditions</a></p></li>
+<li><p><a href="threads.html#threads.glossary.deadlock">Deadlock</a>
+ (sometimes called "deadly embrace")</p></li>
+<li><p><a href="threads.html#threads.glossary.priority-failure">Priority
+ failures</a> (priority inversion, infinite overtaking, starvation,
+ etc.)</p></li>
+</ul></div>
+<p>Every multithreaded program must be designed carefully to avoid these
+ errors. These aren't rare or exotic failures - they are virtually guaranteed
+ to occur unless multithreaded code is designed to avoid them. Priority
+ failures are somewhat less common, but are nonetheless serious.</p>
+<p>The <a href="threads/design.html" title="Design"> design</a>
+ attempts to minimize these errors, but they will still occur unless the
+ programmer proactively designs to avoid them.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Please also see <a href="threads/implementation_notes.html" title="Implementation Notes">the section called &#8220;Implementation Notes&#8221;</a>
+ for additional, implementation-specific considerations.</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357310"></a>Testing and debugging considerations</h5></div></div></div>
+<p>Multithreaded programs are non-deterministic. In other words, the
+ same program with the same input data may follow different execution
+ paths each time it is invoked. That can make testing and debugging a
+ nightmare:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Failures are often not repeatable.</p></li>
+<li><p>Probe effect causes debuggers to produce very different results
+ from non-debug uses.</p></li>
+<li><p>Debuggers require special support to show thread state.</p></li>
+<li><p>Tests on a single processor system may give no indication of
+ serious errors which would appear on multiprocessor systems, and visa
+ versa. Thus test cases should include a varying number of
+ processors.</p></li>
+<li><p>For programs which create a varying number of threads according
+ to workload, tests which don't span the full range of possibilities
+ may miss serious errors.</p></li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357348"></a>Getting a head start</h5></div></div></div>
+<p>Although it might appear that multithreaded programs are inherently
+ unreliable, many reliable multithreaded programs do exist. Multithreading
+ techniques are known which lead to reliable programs.</p>
+<p>Design patterns for reliable multithreaded programs, including the
+ important <span class="emphasis"><em>monitor</em></span> pattern, are presented in
+ <span class="emphasis"><em>Pattern-Oriented Software Architecture Volume 2 - Patterns for
+ Concurrent and Networked Objects</em></span>. Many important multithreading programming
+ considerations (independent of threading library) are discussed in
+ <span class="emphasis"><em>Programming with POSIX Threads</em></span>.</p>
+<p>Doing some reading before attempting multithreaded designs will
+ give you a head start toward reliable multithreaded programs.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357380"></a>C++ Standard Library usage in multithreaded programs</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="threads.html#id1357384">Runtime libraries</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357428">Potentially non-thread-safe functions</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357384"></a>Runtime libraries</h5></div></div></div>
+<p><span class="bold"><strong>Warning:</strong></span> Multithreaded programs such as
+ those using must link to <a href="threads.html#threads.glossary.thread-safe">thread-safe</a> versions of
+ all runtime libraries used by the program, including the runtime library
+ for the C++ Standard Library. Failure to do so will cause <a href="threads.html#threads.glossary.race-condition">race conditions</a> to occur
+ when multiple threads simultaneously execute runtime library functions for
+ <code class="computeroutput">new</code>, <code class="computeroutput">delete</code>, or other language features which
+ imply shared state.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357428"></a>Potentially non-thread-safe functions</h5></div></div></div>
+<p>Certain C++ Standard Library functions inherited from C are
+ particular problems because they hold internal state between
+ calls:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><code class="computeroutput">rand</code></p></li>
+<li><p><code class="computeroutput">strtok</code></p></li>
+<li><p><code class="computeroutput">asctime</code></p></li>
+<li><p><code class="computeroutput">ctime</code></p></li>
+<li><p><code class="computeroutput">gmtime</code></p></li>
+<li><p><code class="computeroutput">localtime</code></p></li>
+</ul></div>
+<p>It is possible to write thread-safe implementations of these by
+ using thread specific storage (see
+ <code class="computeroutput"><a href="thread_specific_ptr.html" title="Class thread_specific_ptr">boost::thread_specific_ptr</a></code>), and several C++
+ compiler vendors do just that. The technique is well-know and is explained
+ in .</p>
+<p>But at least one vendor (HP-UX) does not provide thread-safe
+ implementations of the above functions in their otherwise thread-safe
+ runtime library. Instead they provide replacement functions with
+ different names and arguments.</p>
+<p><span class="bold"><strong>Recommendation:</strong></span> For the most
+ portable, yet thread-safe code, use Boost replacements for the problem
+ functions. See the Boost Random Number Library
+ and Boost Tokenizer Library.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357511"></a>Common guarantees for all components</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="threads.html#id1357515">Exceptions</a></span></dt>
+<dt><span class="section"><a href="threads.html#id1357574">NonCopyable requirement</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357515"></a>Exceptions</h5></div></div></div>
+<p> destructors never
+ throw exceptions. Unless otherwise specified, other
+ functions that do not have
+ an exception-specification may throw implementation-defined
+ exceptions.</p>
+<p>In particular,
+ reports failure to allocate storage by throwing an exception of type
+ <code class="computeroutput">std::bad_alloc</code> or a class derived from
+ <code class="computeroutput">std::bad_alloc</code>, failure to obtain thread resources other than
+ memory by throwing an exception of type
+ <code class="computeroutput"><a href="thread_resource_error.html" title="Class thread_resource_error">boost::thread_resource_error</a></code>, and certain lock
+ related failures by throwing an exception of type
+ <code class="computeroutput"><a href="lock_error.html" title="Class lock_error">boost::lock_error</a></code>.</p>
+<p><span class="bold"><strong>Rationale:</strong></span> Follows the C++ Standard
+ Library practice of allowing all functions except destructors or other
+ specified functions to throw exceptions on errors.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="id1357574"></a>NonCopyable requirement</h5></div></div></div>
+<p> classes documented as
+ meeting the NonCopyable requirement disallow copy construction and copy
+ assignment. For the sake of exposition, the synopsis of such classes show
+ private derivation from <code class="computeroutput">boost::noncopyable</code>. Users
+ should not depend on this derivation, however, as implementations are free
+ to meet the NonCopyable requirement in other ways.</p>
+</div>
+</div>
+</div>
+<div class="glossary">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="threads.glossary"></a>Glossary</h2></div></div></div>
+<p>Definitions are given in terms of the C++ Standard
+ . References to the standard are in the form [1.2.3/4], which
+ represents the section number, with the paragraph number following the
+ "/".</p>
+<p>Because the definitions are written in something akin to "standardese",
+ they can be difficult to understand. The intent isn't to confuse, but rather
+ to clarify the additional requirements places on a C++
+ implementation as defined by the C++ Standard.</p>
+<dl>
+<dt>
+<a name="threads.glossary.thread"></a>Thread</dt>
+<dd>
+<p>Thread is short for "thread of execution". A thread of execution is
+ an execution environment [1.9/7] within the execution environment of a C++
+ program [1.9]. The main() function [3.6.1] of the program is the initial
+ function of the initial thread. A program in a multithreading environment
+ always has an initial thread even if the program explicitly creates no
+ additional threads.</p>
+<p>Unless otherwise specified, each thread shares all aspects of its
+ execution environment with other threads in the program. Shared aspects of
+ the execution environment include, but are not limited to, the
+ following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Static storage duration (static, extern) objects
+ [3.7.1].</p></li>
+<li><p>Dynamic storage duration (heap) objects [3.7.3]. Thus
+ each memory allocation will return a unique addresses, regardless of the
+ thread making the allocation request.</p></li>
+<li><p>Automatic storage duration (stack) objects [3.7.2]
+ accessed via pointer or reference from another thread.</p></li>
+<li><p>Resources provided by the operating system. For example,
+ files.</p></li>
+<li><p>The program itself. In other words, each thread is
+ executing some function of the same program, not a totally different
+ program.</p></li>
+</ul></div>
+<p>Each thread has its own:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>Registers and current execution sequence (program
+ counter) [1.9/5].</p></li>
+<li><p>Automatic storage duration (stack) objects
+ [3.7.2].</p></li>
+</ul></div>
+</dd>
+<dt>
+<a name="threads.glossary.thread-safe"></a>Thread-safe</dt>
+<dd>
+<p>A program is thread-safe if it has no <a href="threads.html#threads.glossary.race-condition">race conditions</a>, does
+ not <a href="threads.html#threads.glossary.deadlock">deadlock</a>, and has
+ no <a href="threads.html#threads.glossary.priority-failure">priority
+ failures</a>.</p>
+<p>Note that thread-safety does not necessarily imply efficiency, and
+ than while some thread-safety violations can be determined statically at
+ compile time, many thread-safety errors can only only be detected at
+ runtime.</p>
+</dd>
+<dt>
+<a name="threads.glossary.thread-state"></a>Thread State</dt>
+<dd>
+<p>During the lifetime of a thread, it shall be in one of the following
+ states:</p>
+<div class="table">
+<a name="id1567021"></a><p class="title"><b>Table 12.26. Thread States</b></p>
+<table class="table" summary="Thread States">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">State</th>
+<th align="left">Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">Ready</td>
+<td align="left">Ready to run, but waiting for a processor.</td>
+</tr>
+<tr>
+<td align="left">Running</td>
+<td align="left">Currently executing on a processor. Zero or more threads
+ may be running at any time, with a maximum equal to the number of
+ processors.</td>
+</tr>
+<tr>
+<td align="left">Blocked</td>
+<td align="left">Waiting for some resource other than a processor which is
+ not currently available, or for the completion of calls to library
+ functions [1.9/6]. The term "waiting" is synonymous with
+ "blocked"</td>
+</tr>
+<tr>
+<td align="left">Terminated</td>
+<td align="left">Finished execution but not yet detached or joined.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>Thread state transitions shall occur only as specified:</p>
+<div class="table">
+<a name="id1567071"></a><p class="title"><b>Table 12.27. Thread States Transitions</b></p>
+<table class="table" summary="Thread States Transitions">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">From</th>
+<th align="left">To</th>
+<th align="left">Cause</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">[none]</td>
+<td align="left">Ready</td>
+<td align="left"><p>Thread is created by a call to a library function.
+ In the case of the initial thread, creation is implicit and
+ occurs during the startup of the main() function [3.6.1].</p></td>
+</tr>
+<tr>
+<td align="left">Ready</td>
+<td align="left">Running</td>
+<td align="left"><p>Processor becomes available.</p></td>
+</tr>
+<tr>
+<td align="left">Running</td>
+<td align="left">Ready</td>
+<td align="left">Thread preempted.</td>
+</tr>
+<tr>
+<td align="left">Running</td>
+<td align="left">Blocked</td>
+<td align="left">Thread calls a library function which waits for a resource or
+ for the completion of I/O.</td>
+</tr>
+<tr>
+<td align="left">Running</td>
+<td align="left">Terminated</td>
+<td align="left">Thread returns from its initial function, calls a thread
+ termination library function, or is canceled by some other thread
+ calling a thread termination library function.</td>
+</tr>
+<tr>
+<td align="left">Blocked</td>
+<td align="left">Ready</td>
+<td align="left">The resource being waited for becomes available, or the
+ blocking library function completes.</td>
+</tr>
+<tr>
+<td align="left">Terminated</td>
+<td align="left">[none]</td>
+<td align="left">Thread is detached or joined by some other thread calling the
+ appropriate library function, or by program termination
+ [3.6.3].</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>[Note: if a suspend() function is added to the threading library,
+ additional transitions to the blocked state will have to be added to the
+ above table.]</p>
+</dd>
+<dt>
+<a name="threads.glossary.race-condition"></a>Race Condition</dt>
+<dd>
+<p>A race condition is what occurs when multiple threads read from and write
+ to the same memory without proper synchronization, resulting in an incorrect
+ value being read or written. The result of a race condition may be a bit
+ pattern which isn't even a valid value for the data type. A race condition
+ results in undefined behavior [1.3.12].</p>
+<p>Race conditions can be prevented by serializing memory access using
+ the tools provided by .</p>
+</dd>
+<dt>
+<a name="threads.glossary.deadlock"></a>Deadlock</dt>
+<dd><p>Deadlock is an execution state where for some set of threads, each
+ thread in the set is blocked waiting for some action by one of the other
+ threads in the set. Since each is waiting on the others, none will ever
+ become ready again.</p></dd>
+<dt>
+<a name="threads.glossary.starvation"></a>Starvation</dt>
+<dd><p>The condition in which a thread is not making sufficient progress in
+ its work during a given time interval.</p></dd>
+<dt>
+<a name="threads.glossary.priority-failure"></a>Priority Failure</dt>
+<dd><p>A priority failure (such as priority inversion or infinite overtaking)
+ occurs when threads are executed in such a sequence that required work is not
+ performed in time to be useful.</p></dd>
+<dt>
+<a name="threads.glossary.undefined-behavior"></a>Undefined Behavior</dt>
+<dd>
+<p>The result of certain operations in is undefined;
+ this means that those operations can invoke almost any behavior when
+ they are executed.</p>
+<p>An operation whose behavior is undefined can work "correctly"
+ in some implementations (i.e., do what the programmer thought it
+ would do), while in other implementations it may exhibit almost
+ any "incorrect" behavior--such as returning an invalid value,
+ throwing an exception, generating an access violation, or terminating
+ the process.</p>
+<p>Executing a statement whose behavior is undefined is a
+ programming error.</p>
+</dd>
+<dt>
+<a name="threads.glossary.memory-visibility"></a>Memory Visibility</dt>
+<dd>
+<p>An address [1.7] shall always point to the same memory byte,
+ regardless of the thread or processor dereferencing the address.</p>
+<p>An object [1.8, 1.9] is accessible from multiple threads if it is of
+ static storage duration (static, extern) [3.7.1], or if a pointer or
+ reference to it is explicitly or implicitly dereferenced in multiple
+ threads.</p>
+<p>For an object accessible from multiple threads, the value of the
+ object accessed from one thread may be indeterminate or different from the
+ value accessed from another thread, except under the conditions specified in
+ the following table. For the same row of the table, the value of an object
+ accessible at the indicated sequence point in thread A will be determinate
+ and the same if accessed at or after the indicated sequence point in thread
+ B, provided the object is not otherwise modified. In the table, the
+ "sequence point at a call" is the sequence point after the evaluation of all
+ function arguments [1.9/17], while the "sequence point after a call" is the
+ sequence point after the copying of the returned value... [1.9/17].</p>
+<div class="table">
+<a name="id1567280"></a><p class="title"><b>Table 12.28. Memory Visibility</b></p>
+<table class="table" summary="Memory Visibility">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Thread A</th>
+<th>Thread B</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>The sequence point at a call to a library thread-creation
+ function.</td>
+<td>The first sequence point of the initial function in the new
+ thread created by the Thread A call.</td>
+</tr>
+<tr>
+<td>The sequence point at a call to a library function which
+ locks a mutex, directly or by waiting for a condition
+ variable.</td>
+<td>The sequence point after a call to a library function which
+ unlocks the same mutex.</td>
+</tr>
+<tr>
+<td>The last sequence point before thread termination.</td>
+<td>The sequence point after a call to a library function which
+ joins the terminated thread.</td>
+</tr>
+<tr>
+<td>The sequence point at a call to a library function which
+ signals or broadcasts a condition variable.</td>
+<td>The sequence point after the call to the library function
+ which was waiting on that same condition variable or signal.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>The architecture of the execution environment and the observable
+ behavior of the abstract machine [1.9] shall be the same on all
+ processors.</p>
+<p>The latitude granted by the C++ standard for an implementation to
+ alter the definition of observable behavior of the abstract machine to
+ include additional library I/O functions [1.9/6] is extended to include
+ threading library functions.</p>
+<p>When an exception is thrown and there is no matching exception handler
+ in the same thread, behavior is undefined. The preferred behavior is the
+ same as when there is no matching exception handler in a program
+ [15.3/9]. That is, terminate() is called, and it is implementation-defined
+ whether or not the stack is unwound.</p>
+</dd>
+</dl>
+</div>
+<div class="bibliography">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="threads.bibliography"></a>Bibliography</h2></div></div></div>
+<div class="biblioentry">
+<a name="threads.bib.AndrewsSchneider83"></a><p>[<span class="abbrev"><a name="threads.bib.AndrewsSchneider83.abbrev"></a>AndrewsSchnieder83</span>] <span class="biblioset"><i>ACM Computing Surveys</i>. <span class="volumenum">Vol. 15. </span><span class="issuenum">No. 1. </span><span class="date">March, 1983. </span></span><span class="biblioset"><span class="authorgroup"><span class="firstname">Gregory</span> <span class="othername">R.</span> <span class="surname">Andrews</span> and <span class="firstname">Fred</span> <span class="othername">B.</span> <span class="surname">Schneider</span>. </span>&#8220;<a href="http://www.acm.org/pubs/citations/journals/surveys/1983-15-1/p3-andrews/" target="_top">Concepts and Notations for Concurrent Programming</a>&#8221;. </span><p>Good general background reading. Includes descriptions of Path
+ Expressions, Message Passing, and Remote Procedure Call in addition to the
+ basics</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.Boost"></a><p>[<span class="abbrev"><a name="threads.bib.Boost.abbrev"></a>Boost</span>] <span class="bibliomisc">The <span class="emphasis"><em>Boost</em></span> world wide web site.
+ <a href="http:/www.boost.org" target="_top">http://www.boost.org</a>. </span><p> is one of many Boost libraries. The Boost web
+ site includes a great deal of documentation and general information which
+ applies to all Boost libraries. Current copies of the libraries including
+ documentation and test programs may be downloaded from the web
+ site.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.Hansen73"></a><p>[<span class="abbrev"><a name="threads.bib.Hansen73.abbrev"></a>Hansen73</span>] <span class="biblioset"><i>ACM Computing Surveys</i>. <span class="volumenum">Vol. 5. </span><span class="issuenum">No. 4. </span><span class="date">December, 1973. </span></span><span class="biblioset"><span class="author"><span class="firstname">Per Brinch</span>. </span>&#8220;<a href="http://www.acm.org/pubs/articles/journals/surveys/1973-5-4/p223-hansen/" target="_top">Concurrent Programming Concepts</a>&#8221;. </span><p>"This paper describes the evolution of language features for
+ multiprogramming from event queues and semaphores to critical regions and
+ monitors." Includes analysis of why events are considered error-prone. Also
+ noteworthy because of an introductory quotation from Christopher Alexander;
+ Brinch Hansen was years ahead of others in recognizing pattern concepts
+ applied to software, too.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.Butenhof97"></a><p>[<span class="abbrev"><a name="threads.bib.Butenhof97.abbrev"></a>Butenhof97</span>] <span class="title"><i><a href="http://cseng.aw.com/book/0,3828,0201633922,00.html" target="_top">Programming with POSIX Threads </a></i>. </span><span class="author"><span class="firstname">David</span> <span class="othername">R.</span> <span class="surname">Butenhof</span>. </span><span class="publisher">Addison-Wesley</span><span class="copyright">Copyright © 1997. </span><span class="isbn">ISNB: 0-201-63392-2. </span><p>This is a very readable explanation of threads and how to use
+ them. Many of the insights given apply to all multithreaded programming, not
+ just POSIX Threads</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.Hoare74"></a><p>[<span class="abbrev"><a name="threads.bib.Hoare74.abbrev"></a>Hoare74</span>] <span class="biblioset"><i>Communications of the ACM</i>. <span class="volumenum">Vol. 17. </span><span class="issuenum">No. 10. </span><span class="date">October, 1974. </span></span><span class="biblioset">&#8220;<a href="http://www.acm.org/classics/feb96/" target="_top">Monitors: An Operating System Structuring Concept</a>&#8221;. <span class="author"><span class="firstname">C.A.R.</span> <span class="surname">Hoare</span>. </span><span class="pagenums">549-557. </span></span><p>Hoare and Brinch Hansen's work on Monitors is the basis for reliable
+ multithreading patterns. This is one of the most often referenced papers in
+ all of computer science, and with good reason.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.ISO98"></a><p>[<span class="abbrev"><a name="threads.bib.ISO98.abbrev"></a>ISO98</span>] <span class="title"><i><a href="http://www.ansi.org" target="_top">Programming Language C++</a></i>. </span><span class="orgname">ISO/IEC. </span><span class="releaseinfo">14882:1998(E). </span><p>This is the official C++ Standards document. Available from the ANSI
+ (American National Standards Institute) Electronic Standards Store.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.McDowellHelmbold89"></a><p>[<span class="abbrev"><a name="threads.bib.McDowellHelmbold89.abbrev"></a>McDowellHelmbold89</span>] <span class="biblioset"><i>Communications of the ACM</i>. <span class="volumenum">Vol. 21. </span><span class="issuenum">No. 2. </span><span class="date">December, 1989. </span></span><span class="biblioset"><span class="author"><span class="firstname">Charles</span> <span class="othername">E.</span> <span class="surname">McDowell</span>. </span><span class="author"><span class="firstname">David</span> <span class="othername">P.</span> <span class="surname">Helmbold</span>. </span><i><a href="http://www.acm.org/pubs/citations/journals/surveys/1989-21-4/p593-mcdowell/" target="_top">Debugging Concurrent Programs</a></i>. </span><p>Identifies many of the unique failure modes and debugging difficulties
+ associated with concurrent programs.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.SchmidtPyarali"></a><p>[<span class="abbrev"><a name="threads.bib.SchmidtPyarali.abbrev"></a>SchmidtPyarali</span>] <span class="title"><i><a href="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html8" target="_top">Strategies for Implementing POSIX Condition Variables on Win32</a></i>. </span><span class="authorgroup"><span class="firstname">Douglas</span> <span class="othername">C.</span> <span class="surname">Schmidt</span> and <span class="firstname">Irfan</span> <span class="surname">Pyarali</span>. </span><span class="orgname">Department of Computer Science, Washington University, St. Louis,
+ Missouri. </span><p>Rationale for understanding condition
+ variables. Note that Alexander Terekhov found some bugs in the
+ implementation given in this article, so pthreads-win32 and
+ are even more complicated yet.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.SchmidtStalRohnertBuschmann"></a><p>[<span class="abbrev"><a name="threads.bib.SchmidtStalRohnertBuschmann.abbrev"></a>SchmidtStalRohnertBuschmann</span>] <span class="title"><i><a href="http://www.wiley.com/Corporate/Website/Objects/Products/0,9049,104671,00.html" target="_top">Pattern-Oriented Architecture Volume 2</a></i>. </span><span class="subtitle">Patterns for Concurrent and Networked Objects. </span><span class="titleabbrev">POSA2. </span><span class="authorgroup"><span class="firstname">Douglas</span> <span class="othername">C.</span> <span class="surname">Schmidt</span>, <span class="firstname">Michael</span>, <span class="firstname">Hans</span> <span class="surname">Rohnert</span>, and <span class="firstname">Frank</span> <span class="surname">Buschmann</span>. </span><span class="publisher">Wiley</span><span class="copyright">Copyright © 2000. </span><p>This is a very good explanation of how to apply several patterns
+ useful for concurrent programming. Among the patterns documented is the
+ Monitor Pattern mentioned frequently in the
+ documentation.</p></p>
+</div>
+<div class="biblioentry">
+<a name="threads.bib.Stroustrup"></a><p>[<span class="abbrev"><a name="threads.bib.Stroustrup.abbrev"></a>Stroustrup</span>] <span class="title"><i><a href="http://cseng.aw.com/book/0,3828,0201700735,00.html" target="_top">The C++ Programming Language</a></i>. </span><span class="edition">Special Edition. </span><span class="publisher">Addison-Wesley</span><span class="copyright">Copyright © 2000. </span><span class="isbn">ISBN: 0-201-70073-5. </span><p>The first book a C++ programmer should own. Note that the 3rd edition
+ (and subsequent editions like the Special Edition) has been rewritten to
+ cover the ISO standard language and library.</p></p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 07, 2005 at 18:06:26 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_algo/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="threads/design.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/threads/concepts.html b/doc/html/threads/concepts.html
new file mode 100644
index 0000000000..329409c17f
--- /dev/null
+++ b/doc/html/threads/concepts.html
@@ -0,0 +1,2241 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Concepts</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="design.html" title="Design">
+<link rel="next" href="rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="rationale.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="threads.concepts"></a>Concepts</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.mutexes">Mutexes</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-mutexes">Read/Write Mutexes</a></span></dt>
+</dl></div>
+<p> currently supports two types of mutex concepts:
+ ordinary <a href="concepts.html#threads.concepts.mutexes" title="Mutexes">Mutexes</a>,
+ which allow only one thread at a time to access a resource, and
+ <a href="concepts.html#threads.concepts.read-write-mutexes" title="Read/Write Mutexes">Read/Write Mutexes</a>,
+ which allow only one thread at a time to access a resource when it is
+ being modified (the "Write" part of Read/Write), but allows multiple threads
+ to access a resource when it is only being referenced (the "Read" part of
+ Read/Write).</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.concepts.mutexes"></a>Mutexes</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.locking-strategies">Locking Strategies</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.sheduling-policies">Scheduling Policies</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.mutex-concepts">Mutex Concepts</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.mutex-models">Mutex Models</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.lock-concepts">Lock Concepts</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.lock-models">Lock Models</a></span></dt>
+</dl></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Certain changes to the mutexes and lock concepts are
+ currently under discussion. In particular, the combination of
+ the multiple lock concepts into a single lock concept
+ is likely, and the combination of the multiple mutex
+ concepts into a single mutex concept is also possible.</div>
+<p>A mutex (short for mutual-exclusion) object is used to serialize
+ access to a resource shared between multiple threads. The
+ <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> concept, with
+ <a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> and
+ <a href="concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> refinements,
+ formalize the requirements. A model that implements Mutex and its
+ refinements has two states: <span class="bold"><strong>locked</strong></span> and
+ <span class="bold"><strong>unlocked</strong></span>. Before using a shared resource, a
+ thread locks a mutex object
+ (an object whose type is a model of
+ <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> or one of it's
+ refinements), ensuring
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a> access to
+ the shared resource. When use of the shared resource is complete, the thread
+ unlocks the mutex object, allowing another thread to acquire the lock and
+ use the shared resource.</p>
+<p>Traditional C thread APIs, like POSIX threads or the Windows thread
+ APIs, expose functions to lock and unlock a mutex object. This is dangerous
+ since it's easy to forget to unlock a locked mutex. When the flow of control
+ is complex, with multiple return points, the likelihood of forgetting to
+ unlock a mutex object becomes even greater. When exceptions are thrown,
+ it becomes nearly impossible to ensure that the mutex object is unlocked
+ properly when using these traditional API's. The result is
+ <a href="../threads.html#threads.glossary.deadlock">deadlock</a>.</p>
+<p>Many C++ threading libraries use a pattern known as <span class="emphasis"><em>Scoped
+ Locking</em></span> to free the programmer from
+ the need to explicitly lock and unlock mutex objects. With this pattern, a
+ <a href="concepts.html#threads.concepts.lock-concepts" title="Lock Concepts">Lock</a> concept is employed where
+ the lock object's constructor locks the associated mutex object and the
+ destructor automatically does the unlocking. The
+ library takes this pattern to
+ the extreme in that Lock concepts are the only way to lock and unlock a
+ mutex object: lock and unlock functions are not exposed by any
+ mutex objects. This helps to
+ ensure safe usage patterns, especially when code throws exceptions.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.locking-strategies"></a>Locking Strategies</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.recursive-locking-strategy">Recursive Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.checked-locking-strategy">Checked Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.unchecked-locking-strategy">Unchecked Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.unspecified-locking-strategy">Unspecified Locking Strategy</a></span></dt>
+</dl></div>
+<p>Every mutex object follows one of several locking strategies. These
+ strategies define the semantics for the locking operation when the calling
+ thread already owns a lock on the mutex object.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.recursive-locking-strategy"></a>Recursive Locking Strategy</h6></div></div></div>
+<p>With a recursive locking strategy, when a thread attempts to acquire
+ a lock on the mutex object for which it already owns a lock, the operation
+ is successful. Note the distinction between a thread, which may have
+ multiple locks outstanding on a recursive mutex object, and a lock object,
+ which even for a recursive mutex object cannot have any of its lock
+ functions called multiple times without first calling unlock.</p>
+<p>Internally a lock count is maintained and the owning thread must
+ unlock the mutex object the same number of times that it locked it before
+ the mutex object's state returns to unlocked. Since mutex objects in
+ expose locking
+ functionality only through lock concepts, a thread will always unlock a
+ mutex object the same number of times that it locked it. This helps to
+ eliminate a whole set of errors typically found in traditional C style
+ thread APIs.</p>
+<p>Classes <code class="computeroutput"><a href="../recursive_mutex.html" title="Class recursive_mutex">boost::recursive_mutex</a></code>,
+ <code class="computeroutput"><a href="../recursive_try_mutex.html" title="Class recursive_try_mutex">boost::recursive_try_mutex</a></code> and
+ <code class="computeroutput"><a href="../recursive_timed_mutex.html" title="Class recursive_timed_mutex">boost::recursive_timed_mutex</a></code> use this locking
+ strategy.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.checked-locking-strategy"></a>Checked Locking Strategy</h6></div></div></div>
+<p>With a checked locking strategy, when a thread attempts to acquire a
+ lock on the mutex object for which the thread already owns a lock, the
+ operation will fail with some sort of error indication. Further, attempts
+ by a thread to unlock a mutex object that was not locked by the thread
+ will also return some sort of error indication. In
+ , an exception of type
+ <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ would be thrown in these cases.</p>
+<p> does not currently
+ provide any mutex objects that use this strategy.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.unchecked-locking-strategy"></a>Unchecked Locking Strategy</h6></div></div></div>
+<p>With an unchecked locking strategy, when a thread attempts to acquire
+ a lock on a mutex object for which the thread already owns a lock the
+ operation will
+ <a href="../threads.html#threads.glossary.deadlock">deadlock</a>. In general
+ this locking strategy is less safe than a checked or recursive strategy,
+ but it's also a faster strategy and so is employed by many libraries.</p>
+<p> does not currently
+ provide any mutex objects that use this strategy.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.unspecified-locking-strategy"></a>Unspecified Locking Strategy</h6></div></div></div>
+<p>With an unspecified locking strategy, when a thread attempts to
+ acquire a lock on a mutex object for which the thread already owns a lock
+ the operation results in
+ <a href="../threads.html#threads.glossary.undefined-behavior">undefined behavior</a>.
+ </p>
+<p>In general a mutex object with an unspecified locking strategy is
+ unsafe, and it requires programmer discipline to use the mutex object
+ properly. However, this strategy allows an implementation to be as fast as
+ possible with no restrictions on its implementation. This is especially
+ true for portable implementations that wrap the native threading support
+ of a platform. For this reason, the classes
+ <code class="computeroutput"><a href="../mutex.html" title="Class mutex">boost::mutex</a></code>,
+ <code class="computeroutput"><a href="../try_mutex.html" title="Class try_mutex">boost::try_mutex</a></code> and
+ <code class="computeroutput"><a href="../timed_mutex.html" title="Class timed_mutex">boost::timed_mutex</a></code> use this locking strategy
+ despite the lack of safety.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.sheduling-policies"></a>Scheduling Policies</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.FIFO-scheduling-policy">FIFO Scheduling Policy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.priority-driven-scheduling-policy">Priority Driven Policy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.unspecified-scheduling-policy">Unspecified Policy</a></span></dt>
+</dl></div>
+<p>Every mutex object follows one of several scheduling policies. These
+ policies define the semantics when the mutex object is unlocked and there is
+ more than one thread waiting to acquire a lock. In other words, the policy
+ defines which waiting thread shall acquire the lock.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.FIFO-scheduling-policy"></a>FIFO Scheduling Policy</h6></div></div></div>
+<p>With a FIFO ("First In First Out") scheduling policy, threads waiting
+ for the lock will acquire it in a first-come-first-served order.
+ This can help prevent a high priority thread from starving lower priority
+ threads that are also waiting on the mutex object's lock.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.priority-driven-scheduling-policy"></a>Priority Driven Policy</h6></div></div></div>
+<p>With a Priority Driven scheduling policy, the thread with the
+ highest priority acquires the lock. Note that this means that low-priority
+ threads may never acquire the lock if the mutex object has high contention
+ and there is always at least one high-priority thread waiting. This is
+ known as thread starvation. When multiple threads of the same priority are
+ waiting on the mutex object's lock one of the other scheduling priorities
+ will determine which thread shall acquire the lock.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.unspecified-scheduling-policy"></a>Unspecified Policy</h6></div></div></div>
+<p>The mutex object does not specify a scheduling policy. In order to
+ ensure portability, all
+ mutex objects use an unspecified scheduling policy.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.mutex-concepts"></a>Mutex Concepts</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.Mutex">Mutex Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TryMutex">TryMutex Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TimedMutex">TimedMutex Concept</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.Mutex"></a>Mutex Concept</h6></div></div></div>
+<p>A Mutex object has two states: locked and unlocked. Mutex object
+ state can only be determined by a lock object meeting the
+ appropriate lock concept requirements
+ and constructed for the Mutex object.</p>
+<p>A Mutex is
+ <a href="../../../libs/utility/utility.htm#Class%20noncopyable" target="_top">
+ NonCopyable</a>.</p>
+<p>For a Mutex type <code class="computeroutput">M</code>
+ and an object <code class="computeroutput">m</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1358355"></a><p class="title"><b>Table 12.1. Mutex Expressions</b></p>
+<table class="table" summary="Mutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>M m;</td>
+<td>
+<p>Constructs a mutex object m.</p>
+<p>Postcondition: m is unlocked.</p>
+</td>
+</tr>
+<tr>
+<td>(&amp;m)-&gt;~M();</td>
+<td>Precondition: m is unlocked. Destroys a mutex object
+ m.</td>
+</tr>
+<tr>
+<td>M::scoped_lock</td>
+<td>A model of
+ <a href="concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TryMutex"></a>TryMutex Concept</h6></div></div></div>
+<p>A TryMutex is a refinement of
+ <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a>.
+ For a TryMutex type <code class="computeroutput">M</code>
+ and an object <code class="computeroutput">m</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1358432"></a><p class="title"><b>Table 12.2. TryMutex Expressions</b></p>
+<table class="table" summary="TryMutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td>M::scoped_try_lock</td>
+<td>A model of
+ <a href="concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a>
+</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TimedMutex"></a>TimedMutex Concept</h6></div></div></div>
+<p>A TimedMutex is a refinement of
+ <a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a>.
+ For a TimedMutex type <code class="computeroutput">M</code>
+ and an object <code class="computeroutput">m</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1358492"></a><p class="title"><b>Table 12.3. TimedMutex Expressions</b></p>
+<table class="table" summary="TimedMutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td>M::scoped_timed_lock</td>
+<td>A model of
+ <a href="concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a>
+</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.mutex-models"></a>Mutex Models</h5></div></div></div>
+<p> currently supplies six models of
+ <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a>
+ and its refinements.</p>
+<div class="table">
+<a name="id1358540"></a><p class="title"><b>Table 12.4. Mutex Models</b></p>
+<table class="table" summary="Mutex Models">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Concept</th>
+<th>Refines</th>
+<th>Models</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a></td>
+<td> </td>
+<td>
+<p><code class="computeroutput"><a href="../mutex.html" title="Class mutex">boost::mutex</a></code></p>
+<p><code class="computeroutput"><a href="../recursive_mutex.html" title="Class recursive_mutex">boost::recursive_mutex</a></code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a></td>
+<td><a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a></td>
+<td>
+<p><code class="computeroutput"><a href="../try_mutex.html" title="Class try_mutex">boost::try_mutex</a></code></p>
+<p><code class="computeroutput"><a href="../recursive_try_mutex.html" title="Class recursive_try_mutex">boost::recursive_try_mutex</a></code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a></td>
+<td><a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a></td>
+<td>
+<p><code class="computeroutput"><a href="../timed_mutex.html" title="Class timed_mutex">boost::timed_mutex</a></code></p>
+<p><code class="computeroutput"><a href="../recursive_timed_mutex.html" title="Class recursive_timed_mutex">boost::recursive_timed_mutex</a></code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.lock-concepts"></a>Lock Concepts</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.Lock">Lock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedLock">ScopedLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TryLock">TryLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedTryLock">ScopedTryLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TimedLock">TimedLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedTimedLock">ScopedTimedLock Concept</a></span></dt>
+</dl></div>
+<p>A lock object provides a safe means for locking and unlocking a mutex
+ object (an object whose type is a model of <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> or one of its refinements). In
+ other words they are an implementation of the <span class="emphasis"><em>Scoped
+ Locking</em></span> pattern. The <a href="concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>,
+ <a href="concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a>, and
+ <a href="concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a>
+ concepts formalize the requirements.</p>
+<p>Lock objects are constructed with a reference to a mutex object and
+ typically acquire ownership of the mutex object by setting its state to
+ locked. They also ensure ownership is relinquished in the destructor. Lock
+ objects also expose functions to query the lock status and to manually lock
+ and unlock the mutex object.</p>
+<p>Lock objects are meant to be short lived, expected to be used at block
+ scope only. The lock objects are not <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>. Lock objects must
+ maintain state to indicate whether or not they've been locked and this state
+ is not protected by any synchronization concepts. For this reason a lock
+ object should never be shared between multiple threads.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.Lock"></a>Lock Concept</h6></div></div></div>
+<p>For a Lock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code>
+ and const object <code class="computeroutput">clk</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1358762"></a><p class="title"><b>Table 12.5. Lock Expressions</b></p>
+<table class="table" summary="Lock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">(&amp;lk)-&gt;~L();</code></td>
+<td><code class="computeroutput">if (locked()) unlock();</code></td>
+</tr>
+<tr>
+<td><code class="computeroutput">(&amp;clk)-&gt;operator const void*()</code></td>
+<td>Returns type void*, non-zero if the associated mutex
+ object has been locked by <code class="computeroutput">clk</code>, otherwise 0.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">clk.locked()</code></td>
+<td>Returns a <code class="computeroutput">bool</code>, <code class="computeroutput">(&amp;clk)-&gt;operator
+ const void*() != 0</code>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">locked()</code>.</p>
+<p>If the associated mutex object is
+ already locked by some other thread, places the current thread in the
+ <a href="../threads.html#threads.glossary.thread-state">Blocked</a> state until
+ the associated mutex is unlocked, after which the current thread
+ is placed in the <a href="../threads.html#threads.glossary.thread-state">Ready</a> state,
+ eventually to be returned to the <a href="../threads.html#threads.glossary.thread-state">Running</a> state. If
+ the associated mutex object is already locked by the same thread
+ the behavior is dependent on the <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated mutex object.</p>
+<p>Postcondition: <code class="computeroutput">locked() == true</code></p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.unlock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">!locked()</code>.</p>
+<p>Unlocks the associated mutex.</p>
+<p>Postcondition: <code class="computeroutput">!locked()</code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedLock"></a>ScopedLock Concept</h6></div></div></div>
+<p>A ScopedLock is a refinement of <a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a>.
+ For a ScopedLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> requirements,
+ and an object <code class="computeroutput">b</code> of type <code class="computeroutput">bool</code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1358999"></a><p class="title"><b>Table 12.6. ScopedLock Expressions</b></p>
+<table class="table" summary="ScopedLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">L lk(m);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then calls
+ <code class="computeroutput">lock()</code>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">L lk(m,b);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then if <code class="computeroutput">b</code>, calls
+ <code class="computeroutput">lock()</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TryLock"></a>TryLock Concept</h6></div></div></div>
+<p>A TryLock is a refinement of <a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a>.
+ For a TryLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1359102"></a><p class="title"><b>Table 12.7. TryLock Expressions</b></p>
+<table class="table" summary="TryLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td><code class="computeroutput">lk.try_lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a
+ non-blocking attempt to lock the associated mutex object,
+ returning <code class="computeroutput">true</code> if the lock attempt is successful,
+ otherwise <code class="computeroutput">false</code>. If the associated mutex object is
+ already locked by the same thread the behavior is dependent on the
+ <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated mutex object.</p>
+</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedTryLock"></a>ScopedTryLock Concept</h6></div></div></div>
+<p>A ScopedTryLock is a refinement of <a href="concepts.html#threads.concepts.TryLock" title="TryLock Concept">TryLock</a>.
+ For a ScopedTryLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> requirements,
+ and an object <code class="computeroutput">b</code> of type <code class="computeroutput">bool</code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1359223"></a><p class="title"><b>Table 12.8. ScopedTryLock Expressions</b></p>
+<table class="table" summary="ScopedTryLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">L lk(m);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then calls
+ <code class="computeroutput">try_lock()</code>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">L lk(m,b);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then if <code class="computeroutput">b</code>, calls
+ <code class="computeroutput">lock()</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TimedLock"></a>TimedLock Concept</h6></div></div></div>
+<p>A TimedLock is a refinement of <a href="concepts.html#threads.concepts.TryLock" title="TryLock Concept">TryLock</a>.
+ For a TimedLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">t</code> of type <code class="computeroutput"><a href="../xtime.html" title="Struct xtime">boost::xtime</a></code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1359344"></a><p class="title"><b>Table 12.9. TimedLock Expressions</b></p>
+<table class="table" summary="TimedLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td><code class="computeroutput">lk.timed_lock(t)</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a blocking attempt
+ to lock the associated mutex object, and returns <code class="computeroutput">true</code>
+ if successful within the specified time <code class="computeroutput">t</code>, otherwise
+ <code class="computeroutput">false</code>. If the associated mutex object is already
+ locked by the same thread the behavior is dependent on the <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated mutex object.</p>
+</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedTimedLock"></a>ScopedTimedLock Concept</h6></div></div></div>
+<p>A ScopedTimedLock is a refinement of <a href="concepts.html#threads.concepts.TimedLock" title="TimedLock Concept">TimedLock</a>.
+ For a ScopedTimedLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> requirements,
+ and an object <code class="computeroutput">b</code> of type <code class="computeroutput">bool</code>,
+ and an object <code class="computeroutput">t</code> of type <code class="computeroutput"><a href="../xtime.html" title="Struct xtime">boost::xtime</a></code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1359488"></a><p class="title"><b>Table 12.10. ScopedTimedLock Expressions</b></p>
+<table class="table" summary="ScopedTimedLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">L lk(m,t);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then calls
+ <code class="computeroutput">timed_lock(t)</code>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">L lk(m,b);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code>, and associates mutex
+ object <code class="computeroutput">m</code> with it, then if <code class="computeroutput">b</code>, calls
+ <code class="computeroutput">lock()</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.lock-models"></a>Lock Models</h5></div></div></div>
+<p> currently supplies twelve models of
+ <a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a>
+ and its refinements.</p>
+<div class="table">
+<a name="id1359578"></a><p class="title"><b>Table 12.11. Lock Models</b></p>
+<table class="table" summary="Lock Models">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Concept</th>
+<th>Refines</th>
+<th>Models</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+<td><a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a></td>
+<td>
+<p><code class="computeroutput">boost::mutex::scoped_lock</code></p>
+<p><code class="computeroutput">boost::recursive_mutex::scoped_lock</code></p>
+<p><code class="computeroutput">boost::try_mutex::scoped_lock</code></p>
+<p><code class="computeroutput">boost::recursive_try_mutex::scoped_lock</code></p>
+<p><code class="computeroutput">boost::timed_mutex::scoped_lock</code></p>
+<p><code class="computeroutput">boost::recursive_timed_mutex::scoped_lock</code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TryLock" title="TryLock Concept">TryLock</a></td>
+<td><a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a></td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+<td><a href="concepts.html#threads.concepts.TryLock" title="TryLock Concept">TryLock</a></td>
+<td>
+<p><code class="computeroutput">boost::try_mutex::scoped_try_lock</code></p>
+<p><code class="computeroutput">boost::recursive_try_mutex::scoped_try_lock</code></p>
+<p><code class="computeroutput">boost::timed_mutex::scoped_try_lock</code></p>
+<p><code class="computeroutput">boost::recursive_timed_mutex::scoped_try_lock</code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TimedLock" title="TimedLock Concept">TimedLock</a></td>
+<td><a href="concepts.html#threads.concepts.TryLock" title="TryLock Concept">TryLock</a></td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a></td>
+<td><a href="concepts.html#threads.concepts.TimedLock" title="TimedLock Concept">TimedLock</a></td>
+<td>
+<p><code class="computeroutput">boost::timed_mutex::scoped_timed_lock</code></p>
+<p><code class="computeroutput">boost::recursive_timed_mutex::scoped_timed_lock</code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.concepts.read-write-mutexes"></a>Read/Write Mutexes</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies">Locking Strategies</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-scheduling-policies">Scheduling Policies</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-mutex-concepts">Mutex Concepts</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-mutex-models">Mutex Models</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-lock-concepts">Lock Concepts</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-lock-models">Lock Models</a></span></dt>
+</dl></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Since the read/write mutex and related classes are new,
+ both interface and implementation are liable to change
+ in future releases of .
+ The lock concepts and lock promotion and demotion in particular
+ are still under discussion and very likely to change.</div>
+<p>A read/write mutex (short for reader/writer mutual-exclusion) object
+ is used to serialize access to a resource shared between multiple
+ threads, where multiple "readers" can share simultaneous access, but
+ "writers" require exclusive access. The
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a> concept, with
+ <a href="concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a> and
+ <a href="concepts.html#threads.concepts.TimedReadWriteMutex" title="TimedReadWriteMutex Concept"> TimedReadWriteMutex</a>
+ refinements formalize the requirements. A model that implements
+ ReadWriteMutex and its refinements has three states:
+ <span class="bold"><strong>read-locked</strong></span>,
+ <span class="bold"><strong>write-locked</strong></span>, and
+ <span class="bold"><strong>unlocked</strong></span>.
+ Before reading from a shared resource, a thread
+ <span class="bold"><strong>read-locks</strong></span>
+ a read/write mutex object
+ (an object whose type is a model of
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a>
+ or one of it's refinements), ensuring
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>
+ access for reading from the shared resource. Before writing
+ to a shared resource, a thread
+ <span class="bold"><strong>write-locks</strong></span> a
+ read/write mutex object
+ (an object whose type is a model of
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a>
+ or one of it's refinements), ensuring
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>
+ access for altering the shared resource. When use of the shared
+ resource is complete, the thread unlocks the mutex object,
+ allowing another thread to acquire the lock and use the shared
+ resource.</p>
+<p>Traditional C thread APIs that provide read/write mutex
+ primitives (like POSIX threads) expose functions to lock and unlock a
+ mutex object. This is dangerous since it's easy to forget to unlock a
+ locked mutex. When the flow of control is complex, with multiple
+ return points, the likelihood of forgetting to unlock a mutex object
+ becomes even greater. When exceptions are thrown, it becomes nearly
+ impossible to ensure that the mutex object is unlocked
+ properly when using these traditional API's. The result is
+ <a href="../threads.html#threads.glossary.deadlock">deadlock</a>.</p>
+<p>Many C++ threading libraries use a pattern known as <span class="emphasis"><em>Scoped
+ Locking</em></span> to free the
+ programmer from the need to explicitly lock and unlock
+ read/write mutex objects. With this pattern, a
+ <a href="concepts.html#threads.concepts.read-write-lock-concepts" title="Lock Concepts">Read/Write Lock</a>
+ concept is employed where the lock object's constructor locks
+ the associated read/write mutex object
+ and the destructor automatically does the unlocking. The
+ library takes this pattern to
+ the extreme in that
+ <a href="concepts.html#threads.concepts.read-write-lock-concepts" title="Lock Concepts">Read/Write Lock</a>
+ concepts are the only way to lock and unlock a read/write mutex
+ object: lock and unlock functions are not exposed by any
+ read/write mutex objects. This helps to
+ ensure safe usage patterns, especially when code throws exceptions.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-locking-strategies"></a>Locking Strategies</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.recursive">Recursive Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.checked">Checked Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.unchecked">Unchecked Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.unspecified">Unspecified Locking Strategy</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.thread-identification">Thread Identification</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.promotion">Lock Promotion</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-locking-strategies.demotion">Lock Demotion</a></span></dt>
+</dl></div>
+<p>Every read/write mutex object follows one of several locking
+ strategies. These strategies define the semantics for the locking
+ operation when the calling thread already owns a lock on the
+ read/write mutex object.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.recursive"></a>Recursive Locking Strategy</h6></div></div></div>
+<p>With a recursive locking strategy, when a thread attempts
+ to acquire a lock on a read/write mutex object
+ for which it already owns a lock, the operation is successful,
+ except in the case where a thread holding a read-lock
+ attempts to obtain a write lock, in which case a
+ <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code> exception will
+ be thrown. Note the distinction between a thread, which may have
+ multiple locks outstanding on a recursive read/write mutex object,
+ and a lock object, which even for a recursive read/write mutex
+ object cannot have any of its lock functions called multiple
+ times without first calling unlock.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Lock Type Held</th>
+<th>Lock Type Requested</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>read-lock</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately</td>
+</tr>
+<tr>
+<td>read-lock</td>
+<td>write-lock</td>
+<td>If this thread is the only holder of the read-lock,
+ grants the write lock immediately. Otherwise throws a
+ <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code> exception.</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td>Grants the (additional) read-lock immediately.</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td> Grant the write-lock immediately</td>
+</tr>
+</tbody>
+</table></div>
+<p>Internally a lock count is maintained and the owning
+ thread must unlock the mutex object the same number of times
+ that it locked it before the mutex object's state returns
+ to unlocked. Since mutex objects in expose
+ locking functionality only through lock concepts, a thread
+ will always unlock a mutex object the same number of times
+ that it locked it. This helps to eliminate a whole set of
+ errors typically found in traditional C style thread APIs.
+ </p>
+<p> does not currently provide any read/write mutex objects
+ that use this strategy. A successful implementation of this locking strategy
+ may require
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies.thread-identification" title="Thread Identification">thread identification</a>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.checked"></a>Checked Locking Strategy</h6></div></div></div>
+<p>With a checked locking strategy, when a thread attempts
+ to acquire a lock on the mutex object for which the thread
+ already owns a lock, the operation will fail with some sort of
+ error indication, except in the case of multiple read-lock
+ acquisition which is a normal operation for ANY ReadWriteMutex.
+ Further, attempts by a thread to unlock a mutex that was not
+ locked by the thread will also return some sort of error
+ indication. In , an exception of type
+ <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code> would be thrown in
+ these cases.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Lock Type Held</th>
+<th>Lock Type Requested</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>read-lock</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately</td>
+</tr>
+<tr>
+<td>read-lock</td>
+<td>write-lock</td>
+<td>Throw <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td>Throw <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td> Throw <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p> does not currently provide any read/write mutex objects
+ that use this strategy. A successful implementation of this locking strategy
+ may require
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies.thread-identification" title="Thread Identification">thread identification</a>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.unchecked"></a>Unchecked Locking Strategy</h6></div></div></div>
+<p>With an unchecked locking strategy, when a thread
+ attempts to acquire a lock on the read/write mutex object
+ for which the thread already owns a lock, the operation
+ will <a href="../threads.html#threads.glossary.deadlock">deadlock</a>.
+ In general this locking strategy is less safe than a checked
+ or recursive strategy, but it can be a faster strategy and so
+ is employed by many libraries.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Lock Type Held</th>
+<th>Lock Type Requested</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>read-lock</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately</td>
+</tr>
+<tr>
+<td>read-lock</td>
+<td>write-lock</td>
+<td><a href="../threads.html#threads.glossary.deadlock">Deadlock</a></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td><a href="../threads.html#threads.glossary.deadlock">Deadlock</a></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td><a href="../threads.html#threads.glossary.deadlock">Deadlock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p> does not currently provide any mutex
+ objects that use this strategy. For ReadWriteMutexes on
+ platforms that contain natively recursive synchronization
+ primitives, implementing a guaranteed-deadlock can actually
+ involve extra work, and would likely require
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies.thread-identification" title="Thread Identification">thread identification</a>.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.unspecified"></a>Unspecified Locking Strategy</h6></div></div></div>
+<p>With an unspecified locking strategy, when a thread
+ attempts to acquire a lock on a read/write mutex object for
+ which the thread already owns a lock, the operation results
+ in <a href="../threads.html#threads.glossary.undefined-behavior">undefined behavior</a>.
+ When a read/write mutex object has an unspecified locking
+ strategy the programmer must assume that the read/write mutex
+ object instead uses an unchecked strategy as the worse case,
+ although some platforms may exhibit a mix of unchecked and
+ recursive behavior.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Lock Type Held</th>
+<th>Lock Type Requested</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>read-lock</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately</td>
+</tr>
+<tr>
+<td>read-lock</td>
+<td>write-lock</td>
+<td>
+<a href="../threads.html#threads.glossary.undefined-behavior">Undefined</a>, but generally <a href="../threads.html#threads.glossary.deadlock">deadlock</a>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td>
+<a href="../threads.html#threads.glossary.undefined-behavior">Undefined</a>, but generally <a href="../threads.html#threads.glossary.deadlock">deadlock</a>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td>
+<a href="../threads.html#threads.glossary.undefined-behavior">Undefined</a>, but generally <a href="../threads.html#threads.glossary.deadlock">deadlock</a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p>In general a read/write mutex object with an unspecified
+ locking strategy is unsafe, and it requires programmer discipline
+ to use the read/write mutex object properly. However, this strategy
+ allows an implementation to be as fast as possible with no restrictions
+ on its implementation. This is especially true for portable implementations
+ that wrap the native threading support of a platform. For this reason, the
+ classes
+ <code class="computeroutput">read_write_mutex</code>,
+ <code class="computeroutput">try_read_write_mutex</code>, and
+ <code class="computeroutput">timed_read_write_mutex</code>
+ use this locking strategy despite the lack of safety.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.thread-identification"></a>Thread Identification</h6></div></div></div>
+<p>ReadWriteMutexes can support specific Locking Strategies
+ (recursive and checked) which help to detect and protect against
+ self-deadlock. Self-deadlock can occur when a holder of a locked
+ ReadWriteMutex attempts to obtain another lock. Given an
+ implemention <span class="emphasis"><em>I</em></span> which is susceptible to
+ self-deadlock but otherwise correct and efficient, a recursive or
+ checked implementation <span class="emphasis"><em>Ir</em></span> or
+ <span class="emphasis"><em>Ic</em></span> can use the same basic implementation,
+ but make special checks against self-deadlock by tracking the
+ identities of thread(s) currently holding locks. This approach
+ makes deadlock detection othrogonal to the basic ReadWriteMutex
+ implementaion.</p>
+<p>Alternatively, a different basic implementation for
+ ReadWriteMutex concepts,
+ <span class="emphasis"><em>I'</em></span> (I-Prime) may exist which uses recursive
+ or checked versions of synchronization primitives to produce
+ a recursive or checked ReadWriteMutex while still providing
+ flexibility in terms of Scheduling Policies. </p>
+<p>Please refer to the <a href="concepts.html#threads.concepts.read-write-mutex-concepts" title="Mutex Concepts">read/write mutex concept</a>
+ documentation for a discussion of locking strategies.
+ The read/write mutex supports only the
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">unspecified</a>
+ locking strategy. ReadWriteMutexes are parameterized on a
+ Mutex type which they use to control write-locking
+ and access to internal state.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.promotion"></a>Lock Promotion</h6></div></div></div>
+<p>ReadWriteMutexes can support lock promotion, where a
+ mutex which is in the read-locked state transitions to a
+ write-locked state without releasing the lock. Lock
+ promotion can be tricky to implement; for instance,
+ extra care must be taken to ensure that only one thread holding a
+ read-lock can block awaiting promotion at any given time. If
+ more than one read-lock holder is allowed to enter a blocked
+ state while waiting to be promoted, deadlock will result since
+ both threads will be waiting for the other to release their read-lock.
+ </p>
+<p>Currently, supports lock promotion
+ through <code class="computeroutput">promote()</code>, <code class="computeroutput">try_promote()</code>,
+ and <code class="computeroutput">timed_promote()</code> operations.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-locking-strategies.demotion"></a>Lock Demotion</h6></div></div></div>
+<p>ReadWriteMutexes can support lock demotion, where a
+ mutex which is in the write-locked state transitions to a
+ read-locked state without releasing the lock.
+ Since by definition only one thread at a time may hold
+ a write-lock, the problem with deadlock that can occur
+ during lock promotion is not a problem for lock
+ demotion.</p>
+<p>Currently, supports lock demotion
+ through <code class="computeroutput">demote()</code>, <code class="computeroutput">try_demote()</code>,
+ and <code class="computeroutput">timed_demote()</code> operations.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-scheduling-policies"></a>Scheduling Policies</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-scheduling-policies.inter-class">Inter-Class Scheduling Policies</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.read-write-scheduling-policies.intra-class">Intra-Class Scheduling Policies</a></span></dt>
+</dl></div>
+<p>Every read/write mutex object follows one of several scheduling
+ policies. These policies define the semantics when the mutex object
+ is unlocked and there is more than one thread waiting to acquire a
+ lock. In other words, the policy defines which waiting thread shall
+ acquire the lock. For a read/write mutex, it is particularly important
+ to define the behavior when threads are requesting both read and
+ write access simultaneously. This will be referred to as "inter-class
+ scheduling" because it describes the scheduling between two
+ classes of threads (those waiting for a read lock and those
+ waiting for a write lock).</p>
+<p>For some types of inter-class scheduling, an "intra-class"
+ scheduling policy can also be defined that will describe the order
+ in which waiting threads of the same class (i.e., those
+ waiting for the same type of lock) will acquire the thread.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.inter-class"></a>Inter-Class Scheduling Policies</h6></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.reader-priority"></a>ReaderPriority</h6></div></div></div>
+<p>With ReaderPriority scheduling, any pending request for
+ a read-lock will have priority over a pending request for a
+ write-lock, irrespective of the current lock state of the
+ read/write mutex, and irrespective of the relative order
+ that the pending requests arrive.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Current mutex state</th>
+<th>Request Type</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>unlocked</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>read-lock</td>
+<td>Grant the additional read-lock immediately.</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td>Wait to acquire the lock until the thread
+ holding the write-lock releases its lock (or until
+ the specified time, if any). A
+ read-lock will be granted to all pending readers
+ before any other thread can acquire a write-lock.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>unlocked</td>
+<td>write-lock</td>
+<td>Grant the write-lock immediately, if and
+ only if there are no pending read-lock requests.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>write-lock</td>
+<td> Wait to acquire the lock until all
+ threads holding read-locks release their locks
+ <span class="bold"><strong>AND</strong></span> no requests
+ for read-locks exist. If other write-lock
+ requests exist, the lock is granted in accordance
+ with the intra-class scheduling policy.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td>Wait to acquire the lock until the thread
+ holding the write-lock releases its lock
+ <span class="bold"><strong>AND</strong></span> no requests
+ for read-locks exist. If other write-lock
+ requests exist, the lock is granted in accordance
+ with the intra-class scheduling policy.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>promote</td>
+<td><p>TODO</p></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>demote</td>
+<td><p>TODO</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.writer-priority"></a>WriterPriority</h6></div></div></div>
+<p>With WriterPriority scheduling, any pending request
+ for a write-lock will have priority over a pending request
+ for a read-lock, irrespective of the current lock state
+ of the read/write mutex, and irrespective of the relative
+ order that the pending requests arrive.</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Current mutex state</th>
+<th>Request Type</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>unlocked</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>read-lock</td>
+<td>Grant the additional read-lock immediately,
+ <span class="bold"><strong>IF</strong></span> no outstanding
+ requests for a write-lock exist; otherwise TODO.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td> Wait to acquire the lock until the
+ thread holding the write-lock
+ releases its lock. The read lock will be granted
+ once no other outstanding write-lock requests
+ exist.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>unlocked</td>
+<td>write-lock</td>
+<td>Grant the write-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>write-lock</td>
+<td>Wait to acquire the lock until all
+ threads holding read-locks release their locks.
+ If other write-lock requests exist, the lock
+ is granted in accordance with the intra-class
+ scheduling policy. This request will be granted
+ before any new read-lock requests are granted.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td>Wait to acquire the lock until the thread
+ holding the write-lock releases its lock. If
+ other write-lock requests exist, the lock is
+ granted in accordance with the intra-class
+ scheduling policy. This request will be granted
+ before any new read-lock requests are granted.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>promote</td>
+<td><p>TODO</p></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>demote</td>
+<td><p>TODO</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.alternating-many-reads"></a>AlternatingPriority/ManyReads</h6></div></div></div>
+<p>With AlternatingPriority/ManyReads scheduling, reader
+ or writer starvation is avoided by alternatively granting read
+ or write access when pending requests exist for both types of
+ locks. Outstanding read-lock requests are treated as a group
+ when it is the "readers' turn"</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Current mutex state</th>
+<th>Request Type</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>unlocked</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>read-lock</td>
+<td>Grant the additional read-lock immediately,
+ <span class="bold"><strong>IF</strong></span> no outstanding
+ requests for a write-lock exist. If outstanding
+ write-lock requests exist, this lock will not
+ be granted until at least one of the
+ write-locks is granted and released. If other
+ read-lock requests exist, all read-locks will be
+ granted as a group.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td> Wait to acquire the lock until the thread
+ holding the write-lock releases its lock. If other
+ outstanding write-lock requests exist, they will
+ have to wait until all current read-lock requests
+ are serviced.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>unlocked</td>
+<td>write-lock</td>
+<td>Grant the write-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>write-lock</td>
+<td>
+<p>Wait to acquire the lock until all threads
+ holding read-locks release their locks.</p>
+<p>If other write-lock requests exist, this
+ lock will be granted to one of them in accordance
+ with the intra-class scheduling policy.</p>
+<p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td>Wait to acquire the lock until the thread
+ holding the write-lock releases its lock. If
+ other outstanding read-lock requests exist, this
+ lock will not be granted until all of the
+ currently waiting read-locks are granted and
+ released. If other write-lock requests exist,
+ this lock will be granted in accordance with the
+ intra-class scheduling policy.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>promote</td>
+<td><p>TODO</p></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>demote</td>
+<td><p>TODO</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.alternating-single-read"></a>AlternatingPriority/SingleRead</h6></div></div></div>
+<p>With AlternatingPriority/SingleRead scheduling, reader
+ or writer starvation is avoided by alternatively granting read
+ or write access when pending requests exist for both types of
+ locks. Outstanding read-lock requests are services one at a
+ time when it is the "readers' turn"</p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Current mutex state</th>
+<th>Request Type</th>
+<th>Action</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>unlocked</td>
+<td>read-lock</td>
+<td>Grant the read-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>read-lock</td>
+<td>Grant the additional read-lock immediately,
+ <span class="bold"><strong>IF</strong></span> no outstanding
+ requests for a write-lock exist. If outstanding
+ write-lock requests exist, this lock will not
+ be granted until at least one of the write-locks
+ is granted and released.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>read-lock</td>
+<td>
+<p>Wait to acquire the lock until the thread
+ holding the write-lock releases its lock.</p>
+<p>If other outstanding write-lock requests
+ exist, exactly one read-lock request will be
+ granted before the next write-lock is granted.
+ </p>
+<p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>unlocked</td>
+<td>write-lock</td>
+<td>Grant the write-lock immediately.</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>write-lock</td>
+<td>
+<p>Wait to acquire the lock until all
+ threads holding read-locks release their
+ locks.</p>
+<p>If other write-lock requests exist,
+ this lock will be granted to one of them
+ in accordance with the intra-class
+ scheduling policy.</p>
+</td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>write-lock</td>
+<td>Wait to acquire the lock until the
+ thread holding the write-lock releases its
+ lock. If other outstanding read-lock requests
+ exist, this lock can not be granted until
+ exactly one read-lock request is granted and
+ released. If other write-lock requests exist,
+ this lock will be granted in accordance with
+ the intra-class scheduling policy.
+ <p>TODO: try-lock, timed-lock.</p>
+</td>
+</tr>
+<tr>
+<td>read-locked</td>
+<td>promote</td>
+<td><p>TODO</p></td>
+</tr>
+<tr>
+<td>write-locked</td>
+<td>demote</td>
+<td><p>TODO</p></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.read-write-scheduling-policies.intra-class"></a>Intra-Class Scheduling Policies</h6></div></div></div>
+<p>Please refer to
+ <a href="concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">the section called &#8220;Scheduling Policies&#8221;</a>
+ for a discussion of mutex scheduling policies, which are identical to
+ read/write mutex intra-class scheduling policies.</p>
+<p>For threads waiting to obtain write-locks, the read/write mutex
+ supports only the
+ <a href="concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>
+ intra-class scheduling policy. That is, given a set of threads
+ waiting for write-locks, the order, relative to one another, in
+ which they receive the write-lock is unspecified.</p>
+<p>For threads waiting to obtain read-locks, the read/write mutex
+ supports only the
+ <a href="concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>
+ intra-class scheduling policy. That is, given a set of threads
+ waiting for read-locks, the order, relative to one another, in
+ which they receive the read-lock is unspecified.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-mutex-concepts"></a>Mutex Concepts</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ReadWriteMutex">ReadWriteMutex Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TryReadWriteMutex">TryReadWriteMutex Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TimedReadWriteMutex">TimedReadWriteMutex Concept</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ReadWriteMutex"></a>ReadWriteMutex Concept</h6></div></div></div>
+<p>A ReadWriteMutex object has three states: read-locked,
+ write-locked, and unlocked. ReadWriteMutex object state can
+ only be determined by a lock object meeting the appropriate lock concept
+ requirements and constructed for the ReadWriteMutex object.</p>
+<p>A ReadWriteMutex is
+ <a href="../../../libs/utility/utility.htm#Class%20noncopyable" target="_top">NonCopyable</a>.
+ </p>
+<p>For a ReadWriteMutex type <code class="computeroutput">M</code>,
+ and an object <code class="computeroutput">m</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1361243"></a><p class="title"><b>Table 12.12. ReadWriteMutex Expressions</b></p>
+<table class="table" summary="ReadWriteMutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">M m;</code></td>
+<td>Constructs a read/write mutex object <code class="computeroutput">m</code>.
+ Post-condition: <code class="computeroutput">m</code> is unlocked.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">(&amp;m)-&gt;~M();</code></td>
+<td>Precondition: <code class="computeroutput">m</code> is unlocked.
+ Destroys a read/write mutex object <code class="computeroutput">m</code>.
+ </td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_read_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a>
+ requirements. </td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_read_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements. </td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a>
+ requirements. </td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TryReadWriteMutex"></a>TryReadWriteMutex Concept</h6></div></div></div>
+<p>A TryReadWriteMutex is a refinement of
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a>.
+ For a TryReadWriteMutex type <code class="computeroutput">M</code>
+ and an object <code class="computeroutput">m</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1361388"></a><p class="title"><b>Table 12.13. TryReadWriteMutex Expressions</b></p>
+<table class="table" summary="TryReadWriteMutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">M::scoped_try_read_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTryReadWriteLock" title="ScopedTryReadWriteLock Expressions">ScopedTryReadWriteLock</a>
+ requirements.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_try_read_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a>
+ requirements.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_try_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a>
+ requirements.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TimedReadWriteMutex"></a>TimedReadWriteMutex Concept</h6></div></div></div>
+<p>A TimedReadWriteMutex is a refinement of
+ <a href="concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a>.
+ For a TimedReadWriteMutex type <code class="computeroutput">M</code>
+ and an object <code class="computeroutput">m</code> of that type
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1361491"></a><p class="title"><b>Table 12.14. TimedReadWriteMutex Expressions</b></p>
+<table class="table" summary="TimedReadWriteMutex Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">M::scoped_timed_read_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTimedReadWriteLock" title="ScopedTimedReadWriteLock Concept">ScopedTimedReadWriteLock</a>
+ requirements.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_timed_read_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a>
+ requirements.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">M::scoped_timed_write_lock</code></td>
+<td>A type meeting the
+ <a href="concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a>
+ requirements.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-mutex-models"></a>Mutex Models</h5></div></div></div>
+<p> currently supplies three models of
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a>
+ and its refinements.</p>
+<div class="table">
+<a name="id1361580"></a><p class="title"><b>Table 12.15. Mutex Models</b></p>
+<table class="table" summary="Mutex Models">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Concept</th>
+<th>Refines</th>
+<th>Models</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a></td>
+<td> </td>
+<td><code class="computeroutput"><a href="../read_write_mutex.html" title="Class read_write_mutex">boost::read_write_mutex</a></code></td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a></td>
+<td><a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a></td>
+<td><code class="computeroutput"><a href="../try_read_write_mutex.html" title="Class try_read_write_mutex">boost::try_read_write_mutex</a></code></td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TimedReadWriteMutex" title="TimedReadWriteMutex Concept">TimedReadWriteMutex</a></td>
+<td><a href="concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a></td>
+<td><code class="computeroutput"><a href="../timed_read_write_mutex.html" title="Class timed_read_write_mutex">boost::timed_read_write_mutex</a></code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-lock-concepts"></a>Lock Concepts</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ReadWriteLock">ReadWriteLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TryReadWriteLock">TryReadWriteLock Expressions</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock Expressions</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.TimedReadWriteLock">TimedReadWriteLock Concept</a></span></dt>
+<dt><span class="section"><a href="concepts.html#threads.concepts.ScopedTimedReadWriteLock">ScopedTimedReadWriteLock Concept</a></span></dt>
+</dl></div>
+<p>A read/write lock object provides a safe means for locking
+ and unlocking a read/write mutex object (an object whose type is
+ a model of
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a>
+ or one of its refinements). In other words they are an
+ implementation of the <span class="emphasis"><em>Scoped Locking</em></span> pattern. The
+ <a href="concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a>,
+ <a href="concepts.html#threads.concepts.ScopedTryReadWriteLock" title="ScopedTryReadWriteLock Expressions">ScopedTryReadWriteLock</a>, and
+ <a href="concepts.html#threads.concepts.ScopedTimedReadWriteLock" title="ScopedTimedReadWriteLock Concept">ScopedTimedReadWriteLock</a>
+ concepts formalize the requirements.</p>
+<p>Read/write lock objects are constructed with a reference to a
+ read/write mutex object and typically acquire ownership of the
+ read/write mutex object by setting its state to locked. They also
+ ensure ownership is relinquished in the destructor. Lock objects
+ also expose functions to query the lock status and to manually lock
+ and unlock the read/write mutex object.</p>
+<p>Read/write lock objects are meant to be short lived, expected
+ to be used at block scope only. The read/write lock objects are not
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>.
+ Read/write lock objects must maintain state to indicate whether or
+ not they've been locked and this state is not protected by any
+ synchronization concepts. For this reason a read/write lock object
+ should never be shared between multiple threads.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ReadWriteLock"></a>ReadWriteLock Concept</h6></div></div></div>
+<p>For a read/write lock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code>
+ and const object <code class="computeroutput">clk</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1361782"></a><p class="title"><b>Table 12.16. ReadWriteLock Expressions</b></p>
+<table class="table" summary="ReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">(&amp;lk)-&gt;~L();</code></td>
+<td><code class="computeroutput">if (locked()) unlock();</code></td>
+</tr>
+<tr>
+<td><code class="computeroutput">(&amp;clk)-&gt;operator const void*()</code></td>
+<td>Returns type void*, non-zero if the associated read/write
+ mutex object has been either read-locked or write-locked by
+ <code class="computeroutput">clk</code>, otherwise 0.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">clk.locked()</code></td>
+<td>Returns a <code class="computeroutput">bool</code>, <code class="computeroutput">(&amp;clk)-&gt;operator
+ const void*() != 0</code>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">clk.state()</code></td>
+<td>Returns an enumeration constant of type <code class="computeroutput">read_write_lock_state</code>:
+ <code class="computeroutput">read_write_lock_state::read_locked</code> if the associated read/write mutex object has been
+ read-locked by <code class="computeroutput">clk</code>, <code class="computeroutput">read_write_lock_state::write_locked</code> if it
+ has been write-locked by <code class="computeroutput">clk</code>, and <code class="computeroutput">read_write_lock_state::unlocked</code>
+ if has not been locked by <code class="computeroutput">clk</code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">clk.read_locked()</code></td>
+<td>Returns a <code class="computeroutput">bool</code>, <code class="computeroutput">(&amp;clk)-&gt;state() == read_write_lock_state::read_locked</code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">clk.write_locked()</code></td>
+<td>Returns a <code class="computeroutput">bool</code>, <code class="computeroutput">(&amp;clk)-&gt;state() == read_write_lock_state::write_locked</code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.read_lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">locked()</code>.</p>
+<p>If the associated read/write mutex
+ object is already read-locked by some other
+ thread, the effect depends on the
+ <a href="concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class scheduling policy</a>
+ of the associated read/write mutex:
+ either immediately obtains an additional
+ read-lock on the associated read/write
+ mutex, or places the current thread in the
+ <a href="../threads.html#threads.glossary.thread-state">Blocked</a>
+ state until the associated read/write mutex
+ is unlocked, after which the current thread
+ is placed in the
+ <a href="../threads.html#threads.glossary.thread-state">Ready</a>
+ state, eventually to be returned to the
+ <a href="../threads.html#threads.glossary.thread-state">Running</a>
+ state.</p>
+<p>If the associated read/write mutex
+ object is already write-locked by some other
+ thread, places the current thread in the
+ <a href="../threads.html#threads.glossary.thread-state">Blocked</a>
+ state until the associated read/write mutex
+ is unlocked, after which the current thread
+ is placed in the
+ <a href="../threads.html#threads.glossary.thread-state">Ready</a>
+ state, eventually to be returned to the
+ <a href="../threads.html#threads.glossary.thread-state">Running</a>
+ state.</p>
+<p>If the associated read/write mutex
+ object is already locked by the same thread
+ the behavior is dependent on the
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies" title="Locking Strategies">locking strategy</a>
+ of the associated read/write mutex object.
+ </p>
+<p>Postcondition: <code class="computeroutput">state() == read_write_lock_state::read_locked</code></p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.write_lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">locked()</code>.</p>
+<p>If the associated read/write mutex
+ object is already locked by some other
+ thread, places the current thread in the
+ <a href="../threads.html#threads.glossary.thread-state">Blocked</a>
+ state until the associated read/write mutex
+ is unlocked, after which the current thread
+ is placed in the
+ <a href="../threads.html#threads.glossary.thread-state">Ready</a>
+ state, eventually to be returned to the
+ <a href="../threads.html#threads.glossary.thread-state">Running</a>
+ state.</p>
+<p>If the associated read/write mutex
+ object is already locked by the same thread
+ the behavior is dependent on the
+ <a href="concepts.html#threads.concepts.read-write-locking-strategies" title="Locking Strategies">locking strategy</a>
+ of the associated read/write mutex object.
+ </p>
+<p>Postcondition: <code class="computeroutput">state() == read_write_lock_state::write_locked</code></p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.demote()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::write_locked</code>.</p>
+<p>Converts the lock held on the associated read/write mutex
+ object from a write-lock to a read-lock without releasing
+ the lock.</p>
+<p>Postcondition: <code class="computeroutput">state() == read_write_lock_state::read_locked</code></p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.promote()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::read_locked</code>
+ or if the lock cannot be promoted because another lock
+ on the same mutex is already waiting to be promoted.</p>
+<p>Makes a blocking attempt to convert the lock held on the associated
+ read/write mutex object from a read-lock to a write-lock without releasing
+ the lock.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.unlock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">!locked()</code>.</p>
+<p>Unlocks the associated read/write mutex.</p>
+<p>Postcondition: <code class="computeroutput">!locked()</code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedReadWriteLock"></a>ScopedReadWriteLock Concept</h6></div></div></div>
+<p>A ScopedReadWriteLock is a refinement of
+ <a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a>.
+ For a ScopedReadWriteLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.ReadWriteMutex" title="ReadWriteMutex Concept">ReadWriteMutex</a> requirements,
+ and an object <code class="computeroutput">s</code> of type <code class="computeroutput">read_write_lock_state</code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1362317"></a><p class="title"><b>Table 12.17. ScopedReadWriteLock Expressions</b></p>
+<table class="table" summary="ScopedReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td><code class="computeroutput">L lk(m,s);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code> and associates read/write mutex
+ object <code class="computeroutput">m</code> with it, then: if <code class="computeroutput">s == read_write_lock_state::read_locked</code>, calls
+ <code class="computeroutput">read_lock()</code>; if <code class="computeroutput">s==read_write_lock_state::write_locked</code>,
+ calls <code class="computeroutput">write_lock()</code>.</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TryReadWriteLock"></a>TryReadWriteLock Expressions</h6></div></div></div>
+<p>A TryReadWriteLock is a refinement of
+ <a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a>.
+ For a TryReadWriteLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1362411"></a><p class="title"><b>Table 12.18. TryReadWriteLock Expressions</b></p>
+<table class="table" summary="TryReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">lk.try_read_lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a non-blocking attempt to read-lock the associated read/write
+ mutex object, returning <code class="computeroutput">true</code> if the attempt is successful,
+ otherwise <code class="computeroutput">false</code>. If the associated read/write mutex object is
+ already locked by the same thread the behavior is dependent on the
+ <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated read/write mutex object.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.try_write_lock()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a non-blocking attempt to write-lock the associated read/write
+ mutex object, returning <code class="computeroutput">true</code> if the attempt is successful,
+ otherwise <code class="computeroutput">false</code>. If the associated read/write mutex object is
+ already locked by the same thread the behavior is dependent on the
+ <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated read/write mutex object.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.try_demote()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::write_locked</code>.</p>
+<p>Makes a non-blocking attempt to convert the lock held on the associated
+ read/write mutex object from a write-lock to a read-lock without releasing
+ the lock, returning <code class="computeroutput">true</code> if the attempt is successful,
+ otherwise <code class="computeroutput">false</code>.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.try_promote()</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::read_locked</code>.</p>
+<p>Makes a non-blocking attempt to convert the lock held on the associated
+ read/write mutex object from a read-lock to a write-lock without releasing
+ the lock, returning <code class="computeroutput">true</code> if the attempt is successful,
+ otherwise <code class="computeroutput">false</code>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedTryReadWriteLock"></a>ScopedTryReadWriteLock Expressions</h6></div></div></div>
+<p>A ScopedTryReadWriteLock is a refinement of
+ <a href="concepts.html#threads.concepts.TryReadWriteLock" title="TryReadWriteLock Expressions">TryReadWriteLock</a>.
+ For a ScopedTryReadWriteLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryReadWriteMutex</a> requirements,
+ and an object <code class="computeroutput">s</code> of type <code class="computeroutput">read_write_lock_state</code>,
+ and an object <code class="computeroutput">b</code> of type <code class="computeroutput">blocking_mode</code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1362685"></a><p class="title"><b>Table 12.19. ScopedTryReadWriteLock Expressions</b></p>
+<table class="table" summary="ScopedTryReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody><tr>
+<td><code class="computeroutput">L lk(m,s,b);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code> and associates read/write mutex
+ object <code class="computeroutput">m</code> with it, then: if <code class="computeroutput">s == read_write_lock_state::read_locked</code>, calls
+ <code class="computeroutput">read_lock()</code> if <code class="computeroutput">b</code>, otherwise <code class="computeroutput">try_read_lock()</code>;
+ if <code class="computeroutput">s==read_write_lock_state::write_locked</code>, calls <code class="computeroutput">write_lock()</code> if <code class="computeroutput">b</code>,
+ otherwise <code class="computeroutput">try_write_lock</code>.</td>
+</tr></tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.TimedReadWriteLock"></a>TimedReadWriteLock Concept</h6></div></div></div>
+<p>A TimedReadWriteLock is a refinement of
+ <a href="concepts.html#threads.concepts.TryReadWriteLock" title="TryReadWriteLock Expressions">TryReadWriteLock</a>.
+ For a TimedReadWriteLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">t</code> of type <code class="computeroutput"><a href="../xtime.html" title="Struct xtime">boost::xtime</a></code>,
+ the following expressions must be well-formed
+ and have the indicated effects.</p>
+<div class="table">
+<a name="id1362819"></a><p class="title"><b>Table 12.20. TimedReadWriteLock Expressions</b></p>
+<table class="table" summary="TimedReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">lk.timed_read_lock(t)</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a blocking attempt to read-lock the associated read/write mutex object,
+ and returns <code class="computeroutput">true</code> if successful within the specified time <code class="computeroutput">t</code>,
+ otherwise <code class="computeroutput">false</code>. If the associated read/write mutex object is already
+ locked by the same thread the behavior is dependent on the <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated read/write mutex object.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.timed_write_lock(t)</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if locked().</p>
+<p>Makes a blocking attempt to write-lock the associated read/write mutex object,
+ and returns <code class="computeroutput">true</code> if successful within the specified time <code class="computeroutput">t</code>,
+ otherwise <code class="computeroutput">false</code>. If the associated read/write mutex object is already
+ locked by the same thread the behavior is dependent on the <a href="concepts.html#threads.concepts.locking-strategies" title="Locking Strategies">locking
+ strategy</a> of the associated read/write mutex object.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.timed_demote(t)</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::write_locked</code>.</p>
+<p>Makes a blocking attempt to convert the lock held on the associated
+ read/write mutex object from a write-lock to a read-lock without releasing
+ the lock, returning <code class="computeroutput">true</code> if the attempt is successful
+ in the specified time <code class="computeroutput">t</code>, otherwise <code class="computeroutput">false</code>.</p>
+</td>
+</tr>
+<tr>
+<td><code class="computeroutput">lk.timed_promote(t)</code></td>
+<td>
+<p>Throws <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>
+ if <code class="computeroutput">state() != read_write_lock_state::read_locked</code>.</p>
+<p>Makes a blocking attempt to convert the lock held on the associated
+ read/write mutex object from a read-lock to a write-lock without releasing
+ the lock, returning <code class="computeroutput">true</code> if the attempt is successful
+ in the specified time <code class="computeroutput">t</code>, otherwise <code class="computeroutput">false</code>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="threads.concepts.ScopedTimedReadWriteLock"></a>ScopedTimedReadWriteLock Concept</h6></div></div></div>
+<p>A ScopedTimedReadWriteLock is a refinement of
+ <a href="concepts.html#threads.concepts.TimedReadWriteLock" title="TimedReadWriteLock Concept">TimedReadWriteLock</a>.
+ For a ScopedTimedReadWriteLock type <code class="computeroutput">L</code>
+ and an object <code class="computeroutput">lk</code> of that type,
+ and an object <code class="computeroutput">m</code> of a type meeting the
+ <a href="concepts.html#threads.concepts.TimedReadWriteMutex" title="TimedReadWriteMutex Concept">TimedReadWriteMutex</a> requirements,
+ and an object <code class="computeroutput">s</code> of type <code class="computeroutput">read_write_lock_state</code>,
+ and an object <code class="computeroutput">t</code> of type <code class="computeroutput"><a href="../xtime.html" title="Struct xtime">boost::xtime</a></code>,
+ and an object <code class="computeroutput">b</code> of type <code class="computeroutput">blocking_mode</code>,
+ the following expressions must be well-formed and have the
+ indicated effects.</p>
+<div class="table">
+<a name="id1363131"></a><p class="title"><b>Table 12.21. ScopedTimedReadWriteLock Expressions</b></p>
+<table class="table" summary="ScopedTimedReadWriteLock Expressions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Expression</th>
+<th>Effects</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="computeroutput">L lk(m,s,b);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code> and associates read/write mutex
+ object <code class="computeroutput">m</code> with it, then: if <code class="computeroutput">s == read_write_lock_state::read_locked</code>, calls
+ <code class="computeroutput">read_lock()</code> if <code class="computeroutput">b</code>, otherwise <code class="computeroutput">try_read_lock()</code>;
+ if <code class="computeroutput">s==read_write_lock_state::write_locked</code>, calls <code class="computeroutput">write_lock()</code> if <code class="computeroutput">b</code>,
+ otherwise <code class="computeroutput">try_write_lock</code>.</td>
+</tr>
+<tr>
+<td><code class="computeroutput">L lk(m,s,t);</code></td>
+<td>Constructs an object <code class="computeroutput">lk</code> and associates read/write mutex
+ object <code class="computeroutput">m</code> with it, then: if <code class="computeroutput">s == read_write_lock_state::read_locked</code>, calls
+ <code class="computeroutput">timed_read_lock(t)</code>; if <code class="computeroutput">s==read_write_lock_state::write_locked</code>,
+ calls <code class="computeroutput">timed_write_lock(t)</code>.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.concepts.read-write-lock-models"></a>Lock Models</h5></div></div></div>
+<p> currently supplies six models of
+ <a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a>
+ and its refinements.</p>
+<div class="table">
+<a name="id1555521"></a><p class="title"><b>Table 12.22. Lock Models</b></p>
+<table class="table" summary="Lock Models">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Concept</th>
+<th>Refines</th>
+<th>Models</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a></td>
+<td><a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a></td>
+<td>
+<p><code class="computeroutput">boost::read_write_mutex::scoped_read_write_lock</code></p>
+<p><code class="computeroutput">boost::try_read_write_mutex::scoped_read_write_lock</code></p>
+<p><code class="computeroutput">boost::timed_read_write_mutex::scoped_read_write_lock</code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TryReadWriteLock" title="TryReadWriteLock Expressions">TryReadWriteLock</a></td>
+<td><a href="concepts.html#threads.concepts.ReadWriteLock" title="ReadWriteLock Concept">ReadWriteLock</a></td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedTryReadWriteLock" title="ScopedTryReadWriteLock Expressions">ScopedTryReadWriteLock</a></td>
+<td><a href="concepts.html#threads.concepts.TryReadWriteLock" title="TryReadWriteLock Expressions">TryReadWriteLock</a></td>
+<td>
+<p><code class="computeroutput">boost::try_read_write_mutex::scoped_try_read_write_lock</code></p>
+<p><code class="computeroutput">boost::timed_read_write_mutex::scoped_try_read_write_lock</code></p>
+</td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.TimedReadWriteLock" title="TimedReadWriteLock Concept">TimedReadWriteLock</a></td>
+<td><a href="concepts.html#threads.concepts.TryReadWriteLock" title="TryReadWriteLock Expressions">TryReadWriteLock</a></td>
+<td> </td>
+</tr>
+<tr>
+<td><a href="concepts.html#threads.concepts.ScopedTimedReadWriteLock" title="ScopedTimedReadWriteLock Concept">ScopedTimedReadWriteLock</a></td>
+<td><a href="concepts.html#threads.concepts.TimedReadWriteLock" title="TimedReadWriteLock Concept">TimedReadWriteLock</a></td>
+<td><p><code class="computeroutput">boost::timed_read_write_mutex::scoped_timed_read_write_lock</code></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: November 28, 2004 at 04:29:36 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="rationale.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/design.html b/doc/html/threads/design.html
new file mode 100644
index 0000000000..56a4ab166d
--- /dev/null
+++ b/doc/html/threads/design.html
@@ -0,0 +1,175 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="next" href="concepts.html" title="Concepts">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="concepts.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="threads.design"></a>Design</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="design.html#threads.design.goals">Goals</a></span></dt>
+<dt><span class="section"><a href="design.html#id1357741">Iterative Phases</a></span></dt>
+<dt><span class="section"><a href="design.html#id1357751">Phase 1, Synchronization Primitives</a></span></dt>
+<dt><span class="section"><a href="design.html#threads.design.phase2">Phase 2, Thread Management and Thread Specific Storage</a></span></dt>
+<dt><span class="section"><a href="design.html#id1357895">The Next Phase</a></span></dt>
+</dl></div>
+<p>With client/server and three-tier architectures becoming common place
+ in today's world, it's becoming increasingly important for programs to be
+ able to handle parallel processing. Modern day operating systems usually
+ provide some support for this through native thread APIs. Unfortunately,
+ writing portable code that makes use of parallel processing in C++ is made
+ very difficult by a lack of a standard interface for these native APIs.
+ Further, these APIs are almost universally C APIs and fail to take
+ advantage of C++'s strengths, or to address concepts unique to C++, such as
+ exceptions.</p>
+<p>The library is an attempt to define a portable interface
+ for writing parallel processes in C++.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.design.goals"></a>Goals</h4></div></div></div>
+<p>The library has several goals that should help to set
+ it apart from other solutions. These goals are listed in order of precedence
+ with full descriptions below.
+ </p>
+<div class="variablelist"><dl>
+<dt><span class="term">Portability</span></dt>
+<dd><p> was designed to be highly portable. The goal is
+ for the interface to be easily implemented on any platform that
+ supports threads, and possibly even on platforms without native thread
+ support.</p></dd>
+<dt><span class="term">Safety</span></dt>
+<dd>
+<p> was designed to be as safe as possible. Writing
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>
+ code is very difficult and successful libraries must strive to
+ insulate the programmer from dangerous constructs as much as
+ possible. This is accomplished in several ways:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>C++ language features are used to make correct usage easy
+ (if possible) and error-prone usage impossible or at least more
+ difficult. For example, see the <a href="concepts.html#threads.concepts.Mutex" title="Mutex Concept">Mutex</a> and <a href="concepts.html#threads.concepts.Lock" title="Lock Concept">Lock</a> designs, and note
+ how they interact.</p></li>
+<li><p>Certain traditional concurrent programming features are
+ considered so error-prone that they are not provided at all. For
+ example, see <a href="rationale.html#threads.rationale.events" title="Rationale for not providing Event Variables">the section called &#8220;Rationale for not providing <span class="emphasis"><em>Event Variables</em></span>&#8221;</a>.</p></li>
+<li><p>Dangerous features, or features which may be misused, are
+ identified as such in the documentation to make users aware of
+ potential pitfalls.</p></li>
+</ul></div>
+</dd>
+<dt><span class="term">Flexibility</span></dt>
+<dd><p> was designed to be flexible. This goal is often
+ at odds with <span class="emphasis"><em>safety</em></span>. When functionality might be
+ compromised by the desire to keep the interface safe,
+ has been designed to provide the functionality, but to make it's use
+ prohibitive for general use. In other words, the interfaces have been
+ designed such that it's usually obvious when something is unsafe, and
+ the documentation is written to explain why.</p></dd>
+<dt><span class="term">Efficiency</span></dt>
+<dd><p> was designed to be as efficient as
+ possible. When building a library on top of another library there is
+ always a danger that the result will be so much slower than the
+ "native" API that programmers are inclined to ignore the higher level
+ API. was designed to minimize the chances of this
+ occurring. The interfaces have been crafted to allow an implementation
+ the greatest chance of being as efficient as possible. This goal is
+ often at odds with the goal for <span class="emphasis"><em>safety</em></span>. Every
+ effort was made to ensure efficient implementations, but when in
+ conflict <span class="emphasis"><em>safety</em></span> has always taken
+ precedence.</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357741"></a>Iterative Phases</h4></div></div></div>
+<p>Another goal of was to take a dynamic, iterative
+ approach in its development. The computing industry is still exploring the
+ concepts of parallel programming. Most thread libraries supply only simple
+ primitive concepts for thread synchronization. These concepts are very
+ simple, but it is very difficult to use them safely or to provide formal
+ proofs for constructs built on top of them. There has been a lot of research
+ into other concepts, such as in "Communicating Sequential Processes."
+ was designed in iterative steps, with each step providing
+ the building blocks necessary for the next step and giving the researcher
+ the tools necessary to explore new concepts in a portable manner.</p>
+<p>Given the goal of following a dynamic, iterative approach
+ shall go through several growth cycles. Each phase in its
+ development shall be roughly documented here.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357751"></a>Phase 1, Synchronization Primitives</h4></div></div></div>
+<p>Boost is all about providing high quality libraries with
+ implementations for many platforms. Unfortunately, there's a big problem
+ faced by developers wishing to supply such high quality libraries, namely
+ thread-safety. The C++ standard doesn't address threads at all, but real
+ world programs often make use of native threading support. A portable
+ library that doesn't address the issue of thread-safety is therefore not
+ much help to a programmer who wants to use the library in his multithreaded
+ application. So there's a very great need for portable primitives that will
+ allow the library developer to create <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>
+ implementations. This need far out weighs the need for portable methods to
+ create and manage threads.</p>
+<p>Because of this need, the first phase of focuses
+ solely on providing portable primitive concepts for thread
+ synchronization. Types provided in this phase include the
+ <code class="computeroutput"><a href="../mutex.html" title="Class mutex">boost::mutex</a></code>,
+ <code class="computeroutput"><a href="../try_mutex.html" title="Class try_mutex">boost::try_mutex</a></code>,
+ <code class="computeroutput"><a href="../timed_mutex.html" title="Class timed_mutex">boost::timed_mutex</a></code>,
+ <code class="computeroutput"><a href="../recursive_mutex.html" title="Class recursive_mutex">boost::recursive_mutex</a></code>,
+ <code class="computeroutput"><a href="../recursive_try_mutex.html" title="Class recursive_try_mutex">boost::recursive_try_mutex</a></code>,
+ <code class="computeroutput"><a href="../recursive_timed_mutex.html" title="Class recursive_timed_mutex">boost::recursive_timed_mutex</a></code>, and
+ <code class="computeroutput"><a href="../lock_error.html" title="Class lock_error">boost::lock_error</a></code>. These are considered the "core"
+ synchronization primitives, though there are others that will be added in
+ later phases.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.design.phase2"></a>Phase 2, Thread Management and Thread Specific Storage</h4></div></div></div>
+<p>This phase addresses the creation and management of threads and
+ provides a mechanism for thread specific storage (data associated with a
+ thread instance). Thread management is a tricky issue in C++, so this
+ phase addresses only the basic needs of multithreaded program. Later
+ phases are likely to add additional functionality in this area. This
+ phase of adds the <code class="computeroutput"><a href="../thread.html" title="Class thread">boost::thread</a></code> and
+ <code class="computeroutput"><a href="../thread_specific_ptr.html" title="Class thread_specific_ptr">boost::thread_specific_ptr</a></code> types. With these
+ additions the library can be considered minimal but
+ complete.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1357895"></a>The Next Phase</h4></div></div></div>
+<p>The next phase will address more advanced synchronization concepts,
+ such as read/write mutexes and barriers.</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../threads.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="concepts.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/faq.html b/doc/html/threads/faq.html
new file mode 100644
index 0000000000..8fc1ab2c13
--- /dev/null
+++ b/doc/html/threads/faq.html
@@ -0,0 +1,292 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Frequently Asked Questions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="../xtime.html" title="Struct xtime">
+<link rel="next" href="../thread/configuration.html" title="Configuration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../xtime.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../thread/configuration.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="threads.faq"></a>Frequently Asked Questions</h3></div></div></div>
+<div class="qandaset">
+<dl>
+<dt>1. <a href="faq.html#id1565979">Are lock objects thread safe?</a>
+</dt>
+<dt>2. <a href="faq.html#id1566021">Why was modeled after (specific library
+ name)?</a>
+</dt>
+<dt>3. <a href="faq.html#id1566036">Why wasn't modeled after (specific library
+ name)?</a>
+</dt>
+<dt>4. <a href="faq.html#id1566044">Why do Mutexes
+ have noncopyable semantics?</a>
+</dt>
+<dt>5. <a href="faq.html#id1566067">How can you prevent deadlock from occurring when
+ a thread must lock multiple mutexes?</a>
+</dt>
+<dt>6. <a href="faq.html#id1566087">Don't noncopyable Mutex semantics mean that a
+ class with a mutex member will be noncopyable as well?</a>
+</dt>
+<dt>7. <a href="faq.html#id1566128">How can you lock a Mutex member in a const member
+ function, in order to implement the Monitor Pattern?</a>
+</dt>
+<dt>8. <a href="faq.html#id1566144">Why supply boost::condition variables rather than
+ event variables?</a>
+</dt>
+<dt>9. <a href="faq.html#id1566178">Why isn't thread cancellation or termination provided?</a>
+</dt>
+<dt>10. <a href="faq.html#id1566190">Is it safe for threads to share automatic storage duration (stack)
+ objects via pointers or references?</a>
+</dt>
+<dt>11. <a href="faq.html#id1566206">Why has class semaphore disappeared?</a>
+</dt>
+</dl>
+<table border="0" summary="Q and A Set">
+<col align="left" width="1%">
+<tbody>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1565979"></a><a name="id1565980"></a><b>1.</b>
+</td>
+<td align="left" valign="top"><p>Are lock objects <a href="../threads.html#threads.glossary.thread-safe">thread safe</a>?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p><span class="bold"><strong>No!</strong></span> Lock objects are not meant to
+ be shared between threads. They are meant to be short-lived objects
+ created on automatic storage within a code block. Any other usage is
+ just likely to lead to errors and won't really be of actual benefit anyway.
+ Share <a href="concepts.html#threads.concepts.mutexes" title="Mutexes">Mutexes</a>, not
+ Locks. For more information see the <a href="rationale.html#threads.rationale.locks" title="Rationale for the Lock Design">rationale</a> behind the
+ design for lock objects.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566021"></a><a name="id1566022"></a><b>2.</b>
+</td>
+<td align="left" valign="top"><p>Why was modeled after (specific library
+ name)?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>It wasn't. was designed from scratch. Extensive
+ design discussions involved numerous people representing a wide range of
+ experience across many platforms. To ensure portability, the initial
+ implements were done in parallel using POSIX Threads and the Win32
+ threading API. But the design is very much in the spirit
+ of C++, and thus doesn't model such C based APIs.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566036"></a><a name="id1566037"></a><b>3.</b>
+</td>
+<td align="left" valign="top"><p>Why wasn't modeled after (specific library
+ name)?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Existing C++ libraries either seemed dangerous (often failing to
+ take advantage of prior art to reduce errors) or had excessive
+ dependencies on library components unrelated to threading. Existing C
+ libraries couldn't meet our C++ requirements, and were also missing
+ certain features. For instance, the WIN32 thread API lacks condition
+ variables, even though these are critical for the important Monitor
+ pattern .</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566044"></a><a name="id1566045"></a><b>4.</b>
+</td>
+<td align="left" valign="top"><p>Why do <a href="concepts.html#threads.concepts.mutexes" title="Mutexes">Mutexes</a>
+ have noncopyable semantics?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>To ensure that <a href="../threads.html#threads.glossary.deadlock">deadlocks</a> don't occur. The
+ only logical form of copy would be to use some sort of shallow copy
+ semantics in which multiple mutex objects could refer to the same mutex
+ state. This means that if ObjA has a mutex object as part of its state
+ and ObjB is copy constructed from it, then when ObjB::foo() locks the
+ mutex it has effectively locked ObjA as well. This behavior can result
+ in deadlock. Other copy semantics result in similar problems (if you
+ think you can prove this to be wrong then supply us with an alternative
+ and we'll reconsider).</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566067"></a><a name="id1566068"></a><b>5.</b>
+</td>
+<td align="left" valign="top"><p>How can you prevent <a href="../threads.html#threads.glossary.deadlock">deadlock</a> from occurring when
+ a thread must lock multiple mutexes?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Always lock them in the same order. One easy way of doing this is
+ to use each mutex's address to determine the order in which they are
+ locked. A future concept may wrap this pattern up in a
+ reusable class.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566087"></a><a name="id1566088"></a><b>6.</b>
+</td>
+<td align="left" valign="top"><p>Don't noncopyable <a href="concepts.html#threads.concepts.mutexes" title="Mutexes">Mutex</a> semantics mean that a
+ class with a mutex member will be noncopyable as well?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top">
+<p>No, but what it does mean is that the compiler can't generate a
+ copy constructor and assignment operator, so they will have to be coded
+ explicitly. This is a <span class="bold"><strong>good thing</strong></span>,
+ however, since the compiler generated operations would not be <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>. The following
+ is a simple example of a class with copyable semantics and internal
+ synchronization through a mutex member.</p>
+<pre class="programlisting">
+class counter
+{
+public:
+ // Doesn't need synchronization since there can be no references to *this
+ // until after it's constructed!
+ explicit counter(int initial_value)
+ : m_value(initial_value)
+ {
+ }
+ // We only need to synchronize other for the same reason we don't have to
+ // synchronize on construction!
+ counter(const counter&amp; other)
+ {
+ boost::mutex::scoped_lock scoped_lock(other.m_mutex);
+ m_value = other.m_value;
+ }
+ // For assignment we need to synchronize both objects!
+ const counter&amp; operator=(const counter&amp; other)
+ {
+ if (this == &amp;other)
+ return *this;
+ boost::mutex::scoped_lock lock1(&amp;m_mutex &lt; &amp;other.m_mutex ? m_mutex : other.m_mutex);
+ boost::mutex::scoped_lock lock2(&amp;m_mutex &gt; &amp;other.m_mutex ? m_mutex : other.m_mutex);
+ m_value = other.m_value;
+ return *this;
+ }
+ int value() const
+ {
+ boost::mutex::scoped_lock scoped_lock(m_mutex);
+ return m_value;
+ }
+ int increment()
+ {
+ boost::mutex::scoped_lock scoped_lock(m_mutex);
+ return ++m_value;
+ }
+private:
+ mutable boost::mutex m_mutex;
+ int m_value;
+};
+</pre>
+</td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566128"></a><a name="id1566129"></a><b>7.</b>
+</td>
+<td align="left" valign="top"><p>How can you lock a <a href="concepts.html#threads.concepts.mutexes" title="Mutexes">Mutex</a> member in a const member
+ function, in order to implement the Monitor Pattern?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>The Monitor Pattern mutex
+ should simply be declared as mutable. See the example code above. The
+ internal state of mutex types could have been made mutable, with all
+ lock calls made via const functions, but this does a poor job of
+ documenting the actual semantics (and in fact would be incorrect since
+ the logical state of a locked mutex clearly differs from the logical
+ state of an unlocked mutex). Declaring a mutex member as mutable clearly
+ documents the intended semantics.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566144"></a><a name="id1566145"></a><b>8.</b>
+</td>
+<td align="left" valign="top"><p>Why supply <code class="computeroutput"><a href="../condition.html" title="Class condition">boost::condition</a></code> variables rather than
+ event variables?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Condition variables result in user code much less prone to <a href="../threads.html#threads.glossary.race-condition">race conditions</a> than
+ event variables. See <a href="rationale.html#threads.rationale.events" title="Rationale for not providing Event Variables">the section called &#8220;Rationale for not providing <span class="emphasis"><em>Event Variables</em></span>&#8221;</a>
+ for analysis. Also see and .
+ </p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566178"></a><a name="id1566180"></a><b>9.</b>
+</td>
+<td align="left" valign="top"><p>Why isn't thread cancellation or termination provided?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>There's a valid need for thread termination, so at some point
+ probably will include it, but only after we can find a
+ truly safe (and portable) mechanism for this concept.</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566190"></a><a name="id1566191"></a><b>10.</b>
+</td>
+<td align="left" valign="top"><p>Is it safe for threads to share automatic storage duration (stack)
+ objects via pointers or references?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Only if you can guarantee that the lifetime of the stack object
+ will not end while other threads might still access the object. Thus the
+ safest practice is to avoid sharing stack objects, particularly in
+ designs where threads are created and destroyed dynamically. Restrict
+ sharing of stack objects to simple designs with very clear and
+ unchanging function and thread lifetimes. (Suggested by Darryl
+ Green).</p></td>
+</tr>
+<tr class="question">
+<td align="left" valign="top">
+<a name="id1566206"></a><a name="id1566208"></a><b>11.</b>
+</td>
+<td align="left" valign="top"><p>Why has class semaphore disappeared?</p></td>
+</tr>
+<tr class="answer">
+<td align="left" valign="top"><b></b></td>
+<td align="left" valign="top"><p>Semaphore was removed as too error prone. The same effect can be
+ achieved with greater safety by the combination of a mutex and a
+ condition variable.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../xtime.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../thread/configuration.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/implementation_notes.html b/doc/html/threads/implementation_notes.html
new file mode 100644
index 0000000000..780d4d5119
--- /dev/null
+++ b/doc/html/threads/implementation_notes.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Implementation Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="../thread/build.html" title="Build">
+<link rel="next" href="release_notes.html" title="Release Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../thread/build.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="release_notes.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="threads.implementation_notes"></a>Implementation Notes</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="implementation_notes.html#threads.implementation_notes.win32">Win32</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.implementation_notes.win32"></a>Win32</h4></div></div></div>
+<p>
+ In the current Win32 implementation, creating a boost::thread object
+ during dll initialization will result in deadlock because the thread
+ class constructor causes the current thread to wait on the thread that
+ is being created until it signals that it has finished its initialization,
+ and, as stated in the
+ <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dllmain.asp" target="_top">MSDN Library, "DllMain" article, "Remarks" section</a>,
+ "Because DLL notifications are serialized, entry-point functions should not
+ attempt to communicate with other threads or processes. Deadlocks may occur as a result."
+ (Also see <a href="http://www.microsoft.com/msj/archive/S220.aspx" target="_top">"Under the Hood", January 1996</a>
+ for a more detailed discussion of this issue).
+ </p>
+<p>
+ The following non-exhaustive list details some of the situations that
+ should be avoided until this issue can be addressed:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>Creating a boost::thread object in DllMain() or in any function called by it.</li>
+<li>Creating a boost::thread object in the constructor of a global static object or in any function called by one.</li>
+<li>Creating a boost::thread object in MFC's CWinApp::InitInstance() function or in any function called by it.</li>
+<li>Creating a boost::thread object in the function pointed to by MFC's _pRawDllMain function pointer or in any function called by it.</li>
+</ul></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../thread/build.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="release_notes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/rationale.html b/doc/html/threads/rationale.html
new file mode 100644
index 0000000000..27a1818f6a
--- /dev/null
+++ b/doc/html/threads/rationale.html
@@ -0,0 +1,504 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Rationale</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="concepts.html" title="Concepts">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="reference.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="threads.rationale"></a>Rationale</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="rationale.html#threads.rationale.Boost.Threads">Rationale for the Creation of </a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.primitives">Rationale for the Low Level Primitives Supported in </a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.locks">Rationale for the Lock Design</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable">Rationale for NonCopyable Thread Type</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.events">Rationale for not providing <span class="emphasis"><em>Event Variables</em></span></a></span></dt>
+</dl></div>
+<p>This page explains the rationale behind various design decisions in the
+ library. Having the rationale documented here should explain
+ how we arrived at the current design as well as prevent future rehashing of
+ discussions and thought processes that have already occurred. It can also give
+ users a lot of insight into the design process required for this
+ library.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.rationale.Boost.Threads"></a>Rationale for the Creation of </h4></div></div></div>
+<p>Processes often have a degree of "potential parallelism" and it can
+ often be more intuitive to design systems with this in mind. Further, these
+ parallel processes can result in more responsive programs. The benefits for
+ multithreaded programming are quite well known to most modern programmers,
+ yet the C++ language doesn't directly support this concept.</p>
+<p>Many platforms support multithreaded programming despite the fact that
+ the language doesn't support it. They do this through external libraries,
+ which are, unfortunately, platform specific. POSIX has tried to address this
+ problem through the standardization of a "pthread" library. However, this is
+ a standard only on POSIX platforms, so its portability is limited.</p>
+<p>Another problem with POSIX and other platform specific thread
+ libraries is that they are almost universally C based libraries. This leaves
+ several C++ specific issues unresolved, such as what happens when an
+ exception is thrown in a thread. Further, there are some C++ concepts, such
+ as destructors, that can make usage much easier than what's available in a C
+ library.</p>
+<p>What's truly needed is C++ language support for threads. However, the
+ C++ standards committee needs existing practice or a good proposal as a
+ starting point for adding this to the standard.</p>
+<p>The library was developed to provide a C++ developer
+ with a portable interface for writing multithreaded programs on numerous
+ platforms. There's a hope that the library can be the basis for a more
+ detailed proposal for the C++ standards committee to consider for inclusion
+ in the next C++ standard.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.rationale.primitives"></a>Rationale for the Low Level Primitives Supported in </h4></div></div></div>
+<p>The library supplies a set of low level primitives for
+ writing multithreaded programs, such as mutexes and condition variables. In
+ fact, the first release of supports only these low level
+ primitives. However, computer science research has shown that use of these
+ primitives is difficult since it's difficult to mathematically prove that a
+ usage pattern is correct, meaning it doesn't result in race conditions or
+ deadlocks. There are several algebras (such as CSP, CCS and Join calculus)
+ that have been developed to help write provably correct parallel
+ processes. In order to prove the correctness these processes must be coded
+ using higher level abstractions. So why does support the
+ lower level concepts?</p>
+<p>The reason is simple: the higher level concepts need to be implemented
+ using at least some of the lower level concepts. So having portable lower
+ level concepts makes it easier to develop the higher level concepts and will
+ allow researchers to experiment with various techniques.</p>
+<p>Beyond this theoretical application of higher level concepts, however,
+ the fact remains that many multithreaded programs are written using only the
+ lower level concepts, so they are useful in and of themselves, even if it's
+ hard to prove that their usage is correct. Since many users will be familiar
+ with these lower level concepts but unfamiliar with any of the higher
+ level concepts, supporting the lower level concepts provides
+ greater accessibility.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.rationale.locks"></a>Rationale for the Lock Design</h4></div></div></div>
+<p>Programmers who are used to multithreaded programming issues will
+ quickly note that the design for mutex lock concepts is not
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a> (this is
+ clearly documented as well). At first this may seem like a serious design
+ flaw. Why have a multithreading primitive that's not thread-safe
+ itself?</p>
+<p>A lock object is not a synchronization primitive. A lock object's sole
+ responsibility is to ensure that a mutex is both locked and unlocked in a
+ manner that won't result in the common error of locking a mutex and then
+ forgetting to unlock it. This means that instances of a lock object are only
+ going to be created, at least in theory, within block scope and won't be
+ shared between threads. Only the mutex objects will be created outside of
+ block scope and/or shared between threads. Though it's possible to create a
+ lock object outside of block scope and to share it between threads, to do so
+ would not be a typical usage (in fact, to do so would likely be an
+ error). Nor are there any cases when such usage would be required.</p>
+<p>Lock objects must maintain some state information. In order to allow a
+ program to determine if a try_lock or timed_lock was successful the lock
+ object must retain state indicating the success or failure of the call made
+ in its constructor. If a lock object were to have such state and remain
+ thread-safe it would need to synchronize access to the state information
+ which would result in roughly doubling the time of most operations. Worse,
+ since checking the state can occur only by a call after construction, we'd
+ have a race condition if the lock object were shared between threads.</p>
+<p>So, to avoid the overhead of synchronizing access to the state
+ information and to avoid the race condition, the library
+ simply does nothing to make lock objects thread-safe. Instead, sharing a
+ lock object between threads results in undefined behavior. Since the only
+ proper usage of lock objects is within block scope this isn't a problem, and
+ so long as the lock object is properly used there's no danger of any
+ multithreading issues.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.rationale.non-copyable"></a>Rationale for NonCopyable Thread Type</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.simple">1. Use case: Simple creation of a thread.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.joined">2. Use case: Creation of a thread that's later joined.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.loop">3. Use case: Simple creation of several threads in a loop.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.loop-join">4. Use case: Creation of several threads in a loop which are later joined.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.pass">5. Use case: Creation of a thread whose ownership is passed to another object/method.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale.non-copyable.shared">6. Use case: Creation of a thread whose ownership is shared between multiple
+ objects.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.simple">1. Comparison: simple creation of a thread.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.joined">2. Comparison: creation of a thread that's later joined.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.loop">3. Comparison: simple creation of several threads in a loop.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join">4. Comparison: creation of several threads in a loop which are later joined.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.pass">5. Comparison: creation of a thread whose ownership is passed to another object/method.</a></span></dt>
+<dt><span class="section"><a href="rationale.html#threads.rationale_comparison.non-copyable.shared">6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.</a></span></dt>
+</dl></div>
+<p>Programmers who are used to C libraries for multithreaded programming
+ are likely to wonder why uses a noncopyable design for
+ <code class="computeroutput"><a href="../thread.html" title="Class thread">boost::thread</a></code>. After all, the C thread types are
+ copyable, and you often have a need for copying them within user
+ code. However, careful comparison of C designs to C++ designs shows a flaw
+ in this logic.</p>
+<p>All C types are copyable. It is, in fact, not possible to make a
+ noncopyable type in C. For this reason types that represent system resources
+ in C are often designed to behave very similarly to a pointer to dynamic
+ memory. There's an API for acquiring the resource and an API for releasing
+ the resource. For memory we have pointers as the type and alloc/free for
+ the acquisition and release APIs. For files we have FILE* as the type and
+ fopen/fclose for the acquisition and release APIs. You can freely copy
+ instances of the types but must manually manage the lifetime of the actual
+ resource through the acquisition and release APIs.</p>
+<p>C++ designs recognize that the acquisition and release APIs are error
+ prone and try to eliminate possible errors by acquiring the resource in the
+ constructor and releasing it in the destructor. The best example of such a
+ design is the std::iostream set of classes which can represent the same
+ resource as the FILE* type in C. A file is opened in the std::fstream's
+ constructor and closed in its destructor. However, if an iostream were
+ copyable it could lead to a file being closed twice, an obvious error, so
+ the std::iostream types are noncopyable by design. This is the same design
+ used by boost::thread, which is a simple and easy to understand design
+ that's consistent with other C++ standard types.</p>
+<p>During the design of boost::thread it was pointed out that it would be
+ possible to allow it to be a copyable type if some form of "reference
+ management" were used, such as ref-counting or ref-lists, and many argued
+ for a boost::thread_ref design instead. The reasoning was that copying
+ "thread" objects was a typical need in the C libraries, and so presumably
+ would be in the C++ libraries as well. It was also thought that
+ implementations could provide more efficient reference management than
+ wrappers (such as boost::shared_ptr) around a noncopyable thread
+ concept. Analysis of whether or not these arguments would hold true doesn't
+ appear to bear them out. To illustrate the analysis we'll first provide
+ pseudo-code illustrating the six typical usage patterns of a thread
+ object.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.simple"></a>1. Use case: Simple creation of a thread.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ create_thread(&amp;bar);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.joined"></a>2. Use case: Creation of a thread that's later joined.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread = create_thread(&amp;bar);
+ join(thread);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.loop"></a>3. Use case: Simple creation of several threads in a loop.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ create_thread(&amp;bar);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.loop-join"></a>4. Use case: Creation of several threads in a loop which are later joined.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ threads[i] = create_thread(&amp;bar);
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ threads[i].join();
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.pass"></a>5. Use case: Creation of a thread whose ownership is passed to another object/method.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread = create_thread(&amp;bar);
+ manager.owns(thread);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale.non-copyable.shared"></a>6. Use case: Creation of a thread whose ownership is shared between multiple
+ objects.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread = create_thread(&amp;bar);
+ manager1.add(thread);
+ manager2.add(thread);
+ }
+ </pre>
+</div>
+<p>Of these usage patterns there's only one that requires reference
+ management (number 6). Hopefully it's fairly obvious that this usage pattern
+ simply won't occur as often as the other usage patterns. So there really
+ isn't a "typical need" for a thread concept, though there is some
+ need.</p>
+<p>Since the need isn't typical we must use different criteria for
+ deciding on either a thread_ref or thread design. Possible criteria include
+ ease of use and performance. So let's analyze both of these
+ carefully.</p>
+<p>With ease of use we can look at existing experience. The standard C++
+ objects that represent a system resource, such as std::iostream, are
+ noncopyable, so we know that C++ programmers must at least be experienced
+ with this design. Most C++ developers are also used to smart pointers such
+ as boost::shared_ptr, so we know they can at least adapt to a thread_ref
+ concept with little effort. So existing experience isn't going to lead us to
+ a choice.</p>
+<p>The other thing we can look at is how difficult it is to use both
+ types for the six usage patterns above. If we find it overly difficult to
+ use a concept for any of the usage patterns there would be a good argument
+ for choosing the other design. So we'll code all six usage patterns using
+ both designs.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.simple"></a>1. Comparison: simple creation of a thread.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread thrd(&amp;bar);
+ }
+ void foo()
+ {
+ thread_ref thrd = create_thread(&amp;bar);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.joined"></a>2. Comparison: creation of a thread that's later joined.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread thrd(&amp;bar);
+ thrd.join();
+ }
+ void foo()
+ {
+ thread_ref thrd =
+ create_thread(&amp;bar);thrd-&gt;join();
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.loop"></a>3. Comparison: simple creation of several threads in a loop.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ thread thrd(&amp;bar);
+ }
+ void foo()
+ {
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ thread_ref thrd = create_thread(&amp;bar);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.loop-join"></a>4. Comparison: creation of several threads in a loop which are later joined.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ std::auto_ptr&lt;thread&gt; threads[NUM_THREADS];
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ threads[i] = std::auto_ptr&lt;thread&gt;(new thread(&amp;bar));
+ for (int i= 0; i&lt;NUM_THREADS;
+ ++i)threads[i]-&gt;join();
+ }
+ void foo()
+ {
+ thread_ref threads[NUM_THREADS];
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ threads[i] = create_thread(&amp;bar);
+ for (int i= 0; i&lt;NUM_THREADS;
+ ++i)threads[i]-&gt;join();
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.pass"></a>5. Comparison: creation of a thread whose ownership is passed to another object/method.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ thread thrd* = new thread(&amp;bar);
+ manager.owns(thread);
+ }
+ void foo()
+ {
+ thread_ref thrd = create_thread(&amp;bar);
+ manager.owns(thrd);
+ }
+ </pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.rationale_comparison.non-copyable.shared"></a>6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.</h5></div></div></div>
+<pre class="programlisting">
+ void foo()
+ {
+ boost::shared_ptr&lt;thread&gt; thrd(new thread(&amp;bar));
+ manager1.add(thrd);
+ manager2.add(thrd);
+ }
+ void foo()
+ {
+ thread_ref thrd = create_thread(&amp;bar);
+ manager1.add(thrd);
+ manager2.add(thrd);
+ }
+ </pre>
+</div>
+<p>This shows the usage patterns being nearly identical in complexity for
+ both designs. The only actual added complexity occurs because of the use of
+ operator new in
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a>,
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.pass" title="5. Comparison: creation of a thread whose ownership is passed to another object/method.">(5)</a>, and
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.shared" title="6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.">(6)</a>;
+ and the use of std::auto_ptr and boost::shared_ptr in
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a> and
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.shared" title="6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.">(6)</a>
+ respectively. However, that's not really
+ much added complexity, and C++ programmers are used to using these idioms
+ anyway. Some may dislike the presence of operator new in user code, but
+ this can be eliminated by proper design of higher level concepts, such as
+ the boost::thread_group class that simplifies example
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a>
+ down to:</p>
+<pre class="programlisting">
+ void foo()
+ {
+ thread_group threads;
+ for (int i=0; i&lt;NUM_THREADS; ++i)
+ threads.create_thread(&amp;bar);
+ threads.join_all();
+ }
+ </pre>
+<p>So ease of use is really a wash and not much help in picking a
+ design.</p>
+<p>So what about performance? Looking at the above code examples,
+ we can analyze the theoretical impact to performance that both designs
+ have. For <a href="rationale.html#threads.rationale_comparison.non-copyable.simple" title="1. Comparison: simple creation of a thread.">(1)</a>
+ we can see that platforms that don't have a ref-counted native
+ thread type (POSIX, for instance) will be impacted by a thread_ref
+ design. Even if the native thread type is ref-counted there may be an impact
+ if more state information has to be maintained for concepts foreign to the
+ native API, such as clean up stacks for Win32 implementations.
+ For <a href="rationale.html#threads.rationale_comparison.non-copyable.joined" title="2. Comparison: creation of a thread that's later joined.">(2)</a>
+ and <a href="rationale.html#threads.rationale_comparison.non-copyable.loop" title="3. Comparison: simple creation of several threads in a loop.">(3)</a>
+ the performance impact will be identical to
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.simple" title="1. Comparison: simple creation of a thread.">(1)</a>.
+ For <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a>
+ things get a little more interesting and we find that theoretically at least
+ the thread_ref may perform faster since the thread design requires dynamic
+ memory allocation/deallocation. However, in practice there may be dynamic
+ allocation for the thread_ref design as well, it will just be hidden from
+ the user. As long as the implementation has to do dynamic allocations the
+ thread_ref loses again because of the reference management. For
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.pass" title="5. Comparison: creation of a thread whose ownership is passed to another object/method.">(5)</a> we see
+ the same impact as we do for
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a>.
+ For <a href="rationale.html#threads.rationale_comparison.non-copyable.shared" title="6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.">(6)</a>
+ we still have a possible impact to
+ the thread design because of dynamic allocation but thread_ref no longer
+ suffers because of its reference management, and in fact, theoretically at
+ least, the thread_ref may do a better job of managing the references. All of
+ this indicates that thread wins for
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.simple" title="1. Comparison: simple creation of a thread.">(1)</a>,
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.joined" title="2. Comparison: creation of a thread that's later joined.">(2)</a> and
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop" title="3. Comparison: simple creation of several threads in a loop.">(3)</a>; with
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.loop-join" title="4. Comparison: creation of several threads in a loop which are later joined.">(4)</a>
+ and <a href="rationale.html#threads.rationale_comparison.non-copyable.pass" title="5. Comparison: creation of a thread whose ownership is passed to another object/method.">(5)</a> the
+ winner depending on the implementation and the platform but with the thread design
+ probably having a better chance; and with
+ <a href="rationale.html#threads.rationale_comparison.non-copyable.shared" title="6. Comparison: creation of a thread whose ownership is shared
+ between multiple objects.">(6)</a>
+ it will again depend on the
+ implementation and platform but this time we favor thread_ref
+ slightly. Given all of this it's a narrow margin, but the thread design
+ prevails.</p>
+<p>Given this analysis, and the fact that noncopyable objects for system
+ resources are the normal designs that C++ programmers are used to dealing
+ with, the library has gone with a noncopyable design.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.rationale.events"></a>Rationale for not providing <span class="emphasis"><em>Event Variables</em></span></h4></div></div></div>
+<p><span class="emphasis"><em>Event variables</em></span> are simply far too
+ error-prone. <code class="computeroutput"><a href="../condition.html" title="Class condition">boost::condition</a></code> variables are a much safer
+ alternative. [Note that Graphical User Interface <span class="emphasis"><em>events</em></span> are
+ a different concept, and are not what is being discussed here.]</p>
+<p>Event variables were one of the first synchronization primitives. They
+ are still used today, for example, in the native Windows multithreading
+ API. Yet both respected computer science researchers and experienced
+ multithreading practitioners believe event variables are so inherently
+ error-prone that they should never be used, and thus should not be part of a
+ multithreading library.</p>
+<p>Per Brinch Hansen analyzed event variables in some
+ detail, pointing out [emphasis his] that "<span class="emphasis"><em>event operations force
+ the programmer to be aware of the relative speeds of the sending and
+ receiving processes</em></span>". His summary:</p>
+<div class="blockquote"><blockquote class="blockquote"><p>We must therefore conclude that event variables of the previous type
+ are impractical for system design. <span class="emphasis"><em>The effect of an interaction
+ between two processes must be independent of the speed at which it is
+ carried out.</em></span></p></blockquote></div>
+<p>Experienced programmers using the Windows platform today report that
+ event variables are a continuing source of errors, even after previous bad
+ experiences caused them to be very careful in their use of event
+ variables. Overt problems can be avoided, for example, by teaming the event
+ variable with a mutex, but that may just convert a <a href="../threads.html#threads.glossary.race-condition">race condition</a> into another
+ problem, such as excessive resource use. One of the most distressing aspects
+ of the experience reports is the claim that many defects are latent. That
+ is, the programs appear to work correctly, but contain hidden timing
+ dependencies which will cause them to fail when environmental factors or
+ usage patterns change, altering relative thread timings.</p>
+<p>The decision to exclude event variables from has been
+ surprising to some Windows programmers. They have written programs which
+ work using event variables, and wonder what the problem is. It seems similar
+ to the "goto considered harmful" controversy of 30 years ago. It isn't that
+ events, like gotos, can't be made to work, but rather that virtually all
+ programs using alternatives will be easier to write, debug, read, maintain,
+ and will be less likely to contain latent defects.</p>
+<p>[Rationale provided by Beman Dawes]</p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 17, 2004 at 04:33:59 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/reference.html b/doc/html/threads/reference.html
new file mode 100644
index 0000000000..de2ecafc74
--- /dev/null
+++ b/doc/html/threads/reference.html
@@ -0,0 +1,143 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="rationale.html" title="Rationale">
+<link rel="next" href="../barrier.html" title="Class barrier">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../barrier.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="threads.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#id759234">Header &lt;boost/thread/barrier.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id928670">Header &lt;boost/thread/condition.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id824356">Header &lt;boost/thread/exceptions.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id868118">Header &lt;boost/thread/mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id718104">Header &lt;boost/thread/once.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1172185">Header &lt;boost/thread/recursive_mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id693680">Header &lt;boost/thread/read_write_mutex.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1248802">Header &lt;boost/thread/thread.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1220687">Header &lt;boost/thread/tss.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id997727">Header &lt;boost/thread/xtime.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id759234"></a>Header &lt;<a href="../../../boost/thread/barrier.hpp" target="_top">boost/thread/barrier.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../barrier.html" title="Class barrier">barrier</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id928670"></a>Header &lt;<a href="../../../boost/thread/condition.hpp" target="_top">boost/thread/condition.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../condition.html" title="Class condition">condition</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id824356"></a>Header &lt;<a href="../../../boost/thread/exceptions.hpp" target="_top">boost/thread/exceptions.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../lock_error.html" title="Class lock_error">lock_error</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../thread_resource_error.html" title="Class thread_resource_error">thread_resource_error</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id868118"></a>Header &lt;<a href="../../../boost/thread/mutex.hpp" target="_top">boost/thread/mutex.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../mutex.html" title="Class mutex">mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../try_mutex.html" title="Class try_mutex">try_mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../timed_mutex.html" title="Class timed_mutex">timed_mutex</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id718104"></a>Header &lt;<a href="../../../boost/thread/once.hpp" target="_top">boost/thread/once.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis">
+
+<a href="../BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a></pre>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> once_flag; <span class="emphasis"><em>// The <a href="../call_once.html" title="Function call_once">call_once</a> function and
+ <code class="computeroutput">once_flag</code> type (statically initialized to
+ <a href="../BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">BOOST_ONCE_INIT</a>) can be used to run a
+ routine exactly once. This can be used to initialize data in a
+ <a href="../threads.html#threads.glossary.thread-safe">thread-safe</a>
+ manner.</em></span>
+   <a href="../call_once.html" title="Function call_once">call_once</a>(<span class="bold"><strong>void</strong></span> (*func)(), once_flag&amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1172185"></a>Header &lt;<a href="../../../boost/thread/recursive_mutex.hpp" target="_top">boost/thread/recursive_mutex.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id693680"></a>Header &lt;<a href="../../../boost/thread/read_write_mutex.hpp" target="_top">boost/thread/read_write_mutex.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a>;
+  <span class="bold"><strong>namespace</strong></span> read_write_scheduling_policy {
+    <span class="bold"><strong>enum</strong></span> <a href="../id1149596.html" title="Type read_write_scheduling_policy">read_write_scheduling_policy</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1248802"></a>Header &lt;<a href="../../../boost/thread/thread.hpp" target="_top">boost/thread/thread.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../thread.html" title="Class thread">thread</a>;
+  <span class="bold"><strong>class</strong></span> <a href="../thread_group.html" title="Class thread_group">thread_group</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1220687"></a>Header &lt;<a href="../../../boost/thread/tss.hpp" target="_top">boost/thread/tss.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../thread_specific_ptr.html" title="Class thread_specific_ptr">thread_specific_ptr</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id997727"></a>Header &lt;<a href="../../../boost/thread/xtime.hpp" target="_top">boost/thread/xtime.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>enum</strong></span> <a href="../id869148.html" title="Type xtime_clock_types">xtime_clock_types</a>;
+
+  <span class="bold"><strong>struct</strong></span> <a href="../xtime.html" title="Struct xtime">xtime</a>;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="../xtime.html#xtime_get">xtime_get</a>(<a href="../xtime.html" title="Struct xtime">xtime</a>*, <span class="bold"><strong>int</strong></span>);
+}</pre>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../threads.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="../barrier.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/threads/release_notes.html b/doc/html/threads/release_notes.html
new file mode 100644
index 0000000000..9eafa8d30b
--- /dev/null
+++ b/doc/html/threads/release_notes.html
@@ -0,0 +1,172 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Release Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../threads.html" title="Chapter 12. Boost.Threads">
+<link rel="prev" href="implementation_notes.html" title="Implementation Notes">
+<link rel="next" href="../thread/acknowledgements.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</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="../threads.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="../thread/acknowledgements.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="threads.release_notes"></a>Release Notes</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0">Boost 1.32.0</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="threads.release_notes.boost_1_32_0"></a>Boost 1.32.0</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.documentation">Documentation converted to BoostBook</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.static_link">Statically-link build option added</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.barrier">Barrier functionality added</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.read_write_mutex">Read/write mutex functionality added</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.thread_specific_ptr">Thread-specific pointer functionality changed</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.mutex">Mutex implementation changed for Win32</a></span></dt>
+<dt><span class="section"><a href="release_notes.html#threads.release_notes.boost_1_32_0.change_log.wince">Windows CE support improved</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.documentation"></a>Documentation converted to BoostBook</h5></div></div></div>
+<p>The documentation was converted to BoostBook format,
+ and a number of errors and inconsistencies were
+ fixed in the process.
+ Since this was a fairly large task, there are likely to be
+ more errors and inconsistencies remaining. If you find any,
+ please report them!</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.static_link"></a>Statically-link build option added</h5></div></div></div>
+<p>The option to link as a static
+ library has been added (with some limitations on Win32 platforms).
+ This feature was originally removed from an earlier version
+ of Boost because <code class="computeroutput"><a href="../thread_specific_ptr.html" title="Class thread_specific_ptr">boost::thread_specific_ptr</a></code>
+ required that be dynamically linked in order
+ for its cleanup functionality to work on Win32 platforms.
+ Because this limitation never applied to non-Win32 platforms,
+ because significant progress has been made in removing
+ the limitation on Win32 platforms (many thanks to
+ Aaron LaFramboise and Roland Scwarz!), and because the lack
+ of static linking is one of the most common complaints of
+ users, this decision was reversed.</p>
+<p>On non-Win32 platforms:
+ To choose the dynamically linked version of
+ using Boost's auto-linking feature, #define BOOST_THREAD_USE_DLL;
+ to choose the statically linked version,
+ #define BOOST_THREAD_USE_LIB.
+ If neither symbols is #defined, the default will be chosen.
+ Currently the default is the statically linked version.</p>
+<p>On Win32 platforms using VC++:
+ Use the same #defines as for non-Win32 platforms
+ (BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
+ If neither is #defined, the default will be chosen.
+ Currently the default is the statically linked version
+ if the VC++ run-time library is set to
+ "Multi-threaded" or "Multi-threaded Debug", and
+ the dynamically linked version
+ if the VC++ run-time library is set to
+ "Multi-threaded DLL" or "Multi-threaded Debug DLL".</p>
+<p>On Win32 platforms using compilers other than VC++:
+ Use the same #defines as for non-Win32 platforms
+ (BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
+ If neither is #defined, the default will be chosen.
+ Currently the default is the dynamically linked version
+ because it has not yet been possible to implement automatic
+ tss cleanup in the statically linked version for compilers
+ other than VC++, although it is hoped that this will be
+ possible in a future version of .
+
+ Note for advanced users: provides several "hook"
+ functions to allow users to experiment with the statically
+ linked version on Win32 with compilers other than VC++.
+ These functions are on_process_enter(), on_process_exit(),
+ on_thread_enter(), and on_thread_exit(), and are defined
+ in tls_hooks.cpp. See the comments in that file for more
+ information.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.barrier"></a>Barrier functionality added</h5></div></div></div>
+<p>A new class, <code class="computeroutput"><a href="../barrier.html" title="Class barrier">boost::barrier</a></code>, was added.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.read_write_mutex"></a>Read/write mutex functionality added</h5></div></div></div>
+<p>New classes,
+ <code class="computeroutput"><a href="../read_write_mutex.html" title="Class read_write_mutex">boost::read_write_mutex</a></code>,
+ <code class="computeroutput"><a href="../try_read_write_mutex.html" title="Class try_read_write_mutex">boost::try_read_write_mutex</a></code>, and
+ <code class="computeroutput"><a href="../timed_read_write_mutex.html" title="Class timed_read_write_mutex">boost::timed_read_write_mutex</a></code>
+ were added.
+
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Since the read/write mutex and related classes are new,
+ both interface and implementation are liable to change
+ in future releases of .
+ The lock concepts and lock promotion in particular are
+ still under discussion and very likely to change.</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.thread_specific_ptr"></a>Thread-specific pointer functionality changed</h5></div></div></div>
+<p>The <code class="computeroutput"><a href="../thread_specific_ptr.html" title="Class thread_specific_ptr">boost::thread_specific_ptr</a></code>
+ constructor now takes an optional pointer to a cleanup function that
+ is called to release the thread-specific data that is being pointed
+ to by <code class="computeroutput"><a href="../thread_specific_ptr.html" title="Class thread_specific_ptr">boost::thread_specific_ptr</a></code> objects.</p>
+<p>Fixed: the number of available thread-specific storage "slots"
+ is too small on some platforms.</p>
+<p>Fixed: <code class="computeroutput">thread_specific_ptr::reset()</code>
+ doesn't check error returned by <code class="computeroutput">tss::set()</code>
+ (the <code class="computeroutput">tss::set()</code> function now throws
+ if it fails instead of returning an error code).</p>
+<p>Fixed: calling
+ <code class="computeroutput">boost::thread_specific_ptr::reset()</code> or
+ <code class="computeroutput">boost::thread_specific_ptr::release()</code>
+ causes double-delete: once when
+ <code class="computeroutput">boost::thread_specific_ptr::reset()</code> or
+ <code class="computeroutput">boost::thread_specific_ptr::release()</code>
+ is called and once when
+ <code class="computeroutput">boost::thread_specific_ptr::~thread_specific_ptr()</code>
+ is called.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.mutex"></a>Mutex implementation changed for Win32</h5></div></div></div>
+<p>On Win32, <code class="computeroutput"><a href="../mutex.html" title="Class mutex">boost::mutex</a></code>,
+ <code class="computeroutput"><a href="../try_mutex.html" title="Class try_mutex">boost::try_mutex</a></code>, <code class="computeroutput"><a href="../recursive_mutex.html" title="Class recursive_mutex">boost::recursive_mutex</a></code>,
+ and <code class="computeroutput"><a href="../recursive_try_mutex.html" title="Class recursive_try_mutex">boost::recursive_try_mutex</a></code> now use a Win32 critical section
+ whenever possible; otherwise they use a Win32 mutex. As before,
+ <code class="computeroutput"><a href="../timed_mutex.html" title="Class timed_mutex">boost::timed_mutex</a></code> and
+ <code class="computeroutput"><a href="../recursive_timed_mutex.html" title="Class recursive_timed_mutex">boost::recursive_timed_mutex</a></code> use a Win32 mutex.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="threads.release_notes.boost_1_32_0.change_log.wince"></a>Windows CE support improved</h5></div></div></div>
+<p>Minor changes were made to make Boost.Threads work on Windows CE.</p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: August 05, 2004 at 18:07:20 GMT</p></small></td>
+<td align="right"><small>Copyright © 2001-2003 William E. Kempf</small></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="../threads.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="../thread/acknowledgements.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_facet.html b/doc/html/time_facet.html
new file mode 100644
index 0000000000..92034df3b4
--- /dev/null
+++ b/doc/html/time_facet.html
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_facet</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id695070" title="Header &lt;boost/date_time/time_facet.hpp&gt;">
+<link rel="prev" href="time_formats.html" title="Struct template time_formats">
+<link rel="next" href="time_input_facet.html" title="Class template time_input_facet">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_formats.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="time_input_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_facet"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_facet</span></h2>
+<p>boost::date_time::time_facet &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> OutItrT = std::ostreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> time_facet : <span class="bold"><strong>public</strong></span> boost::date_time::date_facet&lt; time_type::date_type, CharT, OutItrT &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type                                                          date_type;                    
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type                                                 time_duration_type;           
+  <span class="bold"><strong>typedef</strong></span> <a href="period.html" title="Class template period">boost::date_time::period</a>&lt; time_type, time_duration_type &gt;                     period_type;                  
+  <span class="bold"><strong>typedef</strong></span> <a href="date_facet.html" title="Class template date_facet">boost::date_time::date_facet</a>&lt; <span class="bold"><strong>typename</strong></span> time_type::date_type, CharT, OutItrT &gt; base_type;                    
+  <span class="bold"><strong>typedef</strong></span> base_type::string_type                                                        string_type;                  
+  <span class="bold"><strong>typedef</strong></span> base_type::char_type                                                          char_type;                    
+  <span class="bold"><strong>typedef</strong></span> base_type::period_formatter_type                                              period_formatter_type;        
+  <span class="bold"><strong>typedef</strong></span> base_type::special_values_formatter_type                                      special_values_formatter_type;
+  <span class="bold"><strong>typedef</strong></span> base_type::date_gen_formatter_type                                            date_gen_formatter_type;      
+
+  <span class="emphasis"><em>// <a href="time_facet.html#time_facetconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_facet.html#id752889-bb">time_facet</a>(::size_t = 0);
+  <a href="time_facet.html#id752913-bb">time_facet</a>(<span class="bold"><strong>const</strong></span> char_type *,
+             period_formatter_type = period_formatter_type(),
+             <span class="bold"><strong>const</strong></span> special_values_formatter_type &amp; = special_values_formatter_type(),
+             date_gen_formatter_type = date_gen_formatter_type(),
+             ::size_t = 0);
+
+  <span class="emphasis"><em>// <a href="time_facet.html#id893367-bb">public member functions</a></em></span>
+  <span class="type">std::locale::id &amp;</span> <a href="time_facet.html#id893372-bb">__get_id</a>(<span class="bold"><strong>void</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="time_facet.html#id893396-bb">time_duration_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="time_facet.html#id893425-bb">set_iso_format</a>() ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="time_facet.html#id837032-bb">set_iso_extended_format</a>() ;
+  <span class="type">OutItrT</span> <a href="time_facet.html#id837045-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> time_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="time_facet.html#id837101-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">OutItrT</span> <a href="time_facet.html#id827082-bb">put</a>(OutItrT, std::ios_base &amp;, char_type, <span class="bold"><strong>const</strong></span> period_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="time_facet.html#id830642-bb">protected static functions</a></em></span>
+  <span class="type">string_type</span> <a href="time_facet.html#id830647-bb">fractional_seconds_as_string</a>(<span class="bold"><strong>const</strong></span> time_duration_type &amp;, <span class="bold"><strong>bool</strong></span>) ;
+
+  <span class="bold"><strong>static</strong></span> const char_type * fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * fractional_seconds_or_none_format;
+  <span class="bold"><strong>static</strong></span> const char_type * seconds_with_fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * standard_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_abbrev_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_name_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_iso_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_iso_extended_format;
+  <span class="bold"><strong>static</strong></span> const char_type * posix_zone_string_format;
+  <span class="bold"><strong>static</strong></span> const char_type * duration_seperator;
+  <span class="bold"><strong>static</strong></span> const char_type * duration_sign_always;
+  <span class="bold"><strong>static</strong></span> const char_type * duration_sign_negative_only;
+  <span class="bold"><strong>static</strong></span> const char_type * negative_sign;
+  <span class="bold"><strong>static</strong></span> const char_type * positive_sign;
+  <span class="bold"><strong>static</strong></span> const char_type * iso_time_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type * iso_time_format_extended_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type * default_time_format;
+  <span class="bold"><strong>static</strong></span> const char_type * default_time_duration_format;
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1138662"></a><h2>Description</h2>
+<p>Facet used for format-based output of time types This class provides for the use of format strings to output times. In addition to the flags for formatting date elements, the following are the allowed format flags:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>x X =&gt; default format - enables addition of more flags to default (ie. "%x %X %z")</p></li>
+<li><p>f =&gt; fractional seconds ".123456"</p></li>
+<li><p>F =&gt; fractional seconds or none: like frac sec but empty if frac sec == 0</p></li>
+<li><p>s =&gt; seconds w/ fractional sec "02.123" (this is the same as "%S%f)</p></li>
+<li><p>S =&gt; seconds "02"</p></li>
+<li><p>z =&gt; abbreviated time zone "EDT"</p></li>
+<li><p>Z =&gt; full time zone name "Eastern Daylight Time" </p></li>
+</ul></div>
+<div class="refsect2" lang="en">
+<a name="id1138709"></a><h3>
+<a name="time_facetconstruct-copy-destruct"></a><code class="computeroutput">time_facet</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id752889-bb"></a>time_facet(::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id752913-bb"></a>time_facet(<span class="bold"><strong>const</strong></span> char_type * a_format,
+           period_formatter_type period_formatter = period_formatter_type(),
+           <span class="bold"><strong>const</strong></span> special_values_formatter_type &amp; special_value_formatter = special_values_formatter_type(),
+           date_gen_formatter_type dg_formatter = date_gen_formatter_type(),
+           ::size_t a_ref = 0);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1138776"></a><h3>
+<a name="id893367-bb"></a><code class="computeroutput">time_facet</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">std::locale::id &amp;</span> <a name="id893372-bb"></a>__get_id(<span class="bold"><strong>void</strong></span> ) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id893396-bb"></a>time_duration_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id893425-bb"></a>set_iso_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id837032-bb"></a>set_iso_extended_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id837045-bb"></a>put(OutItrT a_next, std::ios_base &amp; a_ios, char_type a_fill,
+            <span class="bold"><strong>const</strong></span> time_type &amp; a_time) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id837101-bb"></a>put(OutItrT a_next, std::ios_base &amp; a_ios, char_type a_fill,
+            <span class="bold"><strong>const</strong></span> time_duration_type &amp; a_time_dur) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">OutItrT</span> <a name="id827082-bb"></a>put(OutItrT next, std::ios_base &amp; a_ios, char_type fill,
+            <span class="bold"><strong>const</strong></span> period_type &amp; p) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1138998"></a><h3>
+<a name="id830642-bb"></a><code class="computeroutput">time_facet</code> protected static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">string_type</span> <a name="id830647-bb"></a>fractional_seconds_as_string(<span class="bold"><strong>const</strong></span> time_duration_type &amp; a_time,
+                                         <span class="bold"><strong>bool</strong></span> null_when_zero) ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_formats.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="time_input_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_formats.html b/doc/html/time_formats.html
new file mode 100644
index 0000000000..d657747bdc
--- /dev/null
+++ b/doc/html/time_formats.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template time_formats</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id695070" title="Header &lt;boost/date_time/time_facet.hpp&gt;">
+<link rel="prev" href="subsecond_duration.html" title="Class template subsecond_duration">
+<link rel="next" href="time_facet.html" title="Class template time_facet">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="subsecond_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="time_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_formats"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template time_formats</span></h2>
+<p>boost::date_time::time_formats &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt;
+<span class="bold"><strong>struct</strong></span> time_formats {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> CharT char_type;
+
+  <span class="bold"><strong>static</strong></span> const char_type fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type fractional_seconds_or_none_format;
+  <span class="bold"><strong>static</strong></span> const char_type seconds_with_fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type standard_format;
+  <span class="bold"><strong>static</strong></span> const char_type zone_abbrev_format;
+  <span class="bold"><strong>static</strong></span> const char_type zone_name_format;
+  <span class="bold"><strong>static</strong></span> const char_type zone_iso_format;
+  <span class="bold"><strong>static</strong></span> const char_type zone_iso_extended_format;
+  <span class="bold"><strong>static</strong></span> const char_type posix_zone_string_format;
+  <span class="bold"><strong>static</strong></span> const char_type duration_sign_negative_only;
+  <span class="bold"><strong>static</strong></span> const char_type duration_sign_always;
+  <span class="bold"><strong>static</strong></span> const char_type duration_seperator;
+  <span class="bold"><strong>static</strong></span> const char_type negative_sign;
+  <span class="bold"><strong>static</strong></span> const char_type positive_sign;
+  <span class="bold"><strong>static</strong></span> const char_type iso_time_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type iso_time_format_extended_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type default_time_format;
+  <span class="bold"><strong>static</strong></span> const char_type default_time_input_format;
+  <span class="bold"><strong>static</strong></span> const char_type default_time_duration_format;
+};</pre></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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="subsecond_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="time_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_from_ftime.html b/doc/html/time_from_ftime.html
new file mode 100644
index 0000000000..3a5533a52d
--- /dev/null
+++ b/doc/html/time_from_ftime.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template time_from_ftime</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id927449" title="Header &lt;boost/date_time/filetime_functions.hpp&gt;">
+<link rel="prev" href="day_calc_dst_rule.html" title="Class template day_calc_dst_rule">
+<link rel="next" href="format_date_parser.html" title="Class template format_date_parser">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_calc_dst_rule.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id927449"><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="format_date_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_from_ftime"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template time_from_ftime</span></h2>
+<p>boost::date_time::time_from_ftime &#8212; Create a time object from an initialized FILETIME struct. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt; <span class="type">time_type</span> time_from_ftime(<span class="bold"><strong>const</strong></span> FILETIME &amp; ft);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1083361"></a><h2>Description</h2>
+<p>Create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="day_calc_dst_rule.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id927449"><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="format_date_parser.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_input_facet.html b/doc/html/time_input_facet.html
new file mode 100644
index 0000000000..38b40b5b07
--- /dev/null
+++ b/doc/html/time_input_facet.html
@@ -0,0 +1,169 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_input_facet</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id695070" title="Header &lt;boost/date_time/time_facet.hpp&gt;">
+<link rel="prev" href="time_facet.html" title="Class template time_facet">
+<link rel="next" href="id838605.html" title="Class template ostream_time_duration_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="id838605.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_input_facet"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_input_facet</span></h2>
+<p>boost::date_time::time_input_facet &#8212; Facet for format-based input. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT,
+         <span class="bold"><strong>typename</strong></span> InItrT = std::istreambuf_iterator&lt;CharT, std::char_traits&lt;CharT&gt; &gt; &gt;
+<span class="bold"><strong>class</strong></span> time_input_facet : <span class="bold"><strong>public</strong></span> boost::date_time::date_input_facet&lt; time_type::date_type, CharT, InItrT &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type                                                               date_type;                 
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type                                                      time_duration_type;        
+  <span class="bold"><strong>typedef</strong></span> time_duration_type::fractional_seconds_type                                        fracional_seconds_type;    
+  <span class="bold"><strong>typedef</strong></span> <a href="period.html" title="Class template period">boost::date_time::period</a>&lt; time_type, time_duration_type &gt;                          period_type;               
+  <span class="bold"><strong>typedef</strong></span> <a href="date_input_facet.html" title="Class template date_input_facet">boost::date_time::date_input_facet</a>&lt; <span class="bold"><strong>typename</strong></span> time_type::date_type, CharT, InItrT &gt; base_type;                 
+  <span class="bold"><strong>typedef</strong></span> base_type::duration_type                                                           date_duration_type;        
+  <span class="bold"><strong>typedef</strong></span> base_type::year_type                                                               year_type;                 
+  <span class="bold"><strong>typedef</strong></span> base_type::month_type                                                              month_type;                
+  <span class="bold"><strong>typedef</strong></span> base_type::day_type                                                                day_type;                  
+  <span class="bold"><strong>typedef</strong></span> base_type::string_type                                                             string_type;               
+  <span class="bold"><strong>typedef</strong></span> string_type::const_iterator                                                        const_itr;                 
+  <span class="bold"><strong>typedef</strong></span> base_type::char_type                                                               char_type;                 
+  <span class="bold"><strong>typedef</strong></span> base_type::format_date_parser_type                                                 format_date_parser_type;   
+  <span class="bold"><strong>typedef</strong></span> base_type::period_parser_type                                                      period_parser_type;        
+  <span class="bold"><strong>typedef</strong></span> base_type::special_values_parser_type                                              special_values_parser_type;
+  <span class="bold"><strong>typedef</strong></span> base_type::date_gen_parser_type                                                    date_gen_parser_type;      
+  <span class="bold"><strong>typedef</strong></span> base_type::special_values_parser_type::match_results                               match_results;             
+
+  <span class="emphasis"><em>// <a href="time_input_facet.html#time_input_facetconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_input_facet.html#id943564-bb">time_input_facet</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, ::size_t = 0);
+  <a href="time_input_facet.html#id943598-bb">time_input_facet</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> format_date_parser_type &amp;,
+                   <span class="bold"><strong>const</strong></span> special_values_parser_type &amp;,
+                   <span class="bold"><strong>const</strong></span> period_parser_type &amp;, <span class="bold"><strong>const</strong></span> date_gen_parser_type &amp;,
+                   ::size_t = 0);
+  <a href="time_input_facet.html#id943670-bb">time_input_facet</a>(::size_t = 0);
+
+  <span class="emphasis"><em>// <a href="time_input_facet.html#id733135-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="time_input_facet.html#id733140-bb">time_duration_format</a>(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span>) ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="time_input_facet.html#id863470-bb">set_iso_format</a>() ;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="time_input_facet.html#id863482-bb">set_iso_extended_format</a>() ;
+  <span class="type">InItrT</span> <a href="time_input_facet.html#id863496-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, period_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="time_input_facet.html#id723093-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, time_duration_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="time_input_facet.html#id829901-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, time_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">InItrT</span> <a href="time_input_facet.html#id752089-bb">get_local_time</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, time_type &amp;,
+                        string_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="time_input_facet.html#id728170-bb">protected member functions</a></em></span>
+  <span class="type">InItrT</span> <a href="time_input_facet.html#id728176-bb">get</a>(InItrT &amp;, InItrT &amp;, std::ios_base &amp;, time_type &amp;, string_type &amp;,
+             <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> temporal_type&gt;
+    <span class="type">InItrT</span> <a href="time_input_facet.html#id857169-bb">check_special_value</a>(InItrT &amp;, InItrT &amp;, temporal_type &amp;,
+                               char_type = '\0') <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="time_input_facet.html#id870128-bb">parse_frac_type</a>(InItrT &amp;, InItrT &amp;, fracional_seconds_type &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="time_input_facet.html#id827432-bb">private member functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type&gt;
+    <span class="type">int_type</span> <a href="time_input_facet.html#id827438-bb">decimal_adjust</a>(int_type, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span>) <span class="bold"><strong>const</strong></span>;
+
+  <span class="bold"><strong>static</strong></span> const char_type * fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * fractional_seconds_or_none_format;
+  <span class="bold"><strong>static</strong></span> const char_type * seconds_with_fractional_seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * seconds_format;
+  <span class="bold"><strong>static</strong></span> const char_type * standard_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_abbrev_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_name_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_iso_format;
+  <span class="bold"><strong>static</strong></span> const char_type * zone_iso_extended_format;
+  <span class="bold"><strong>static</strong></span> const char_type * duration_seperator;
+  <span class="bold"><strong>static</strong></span> const char_type * iso_time_format_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type * iso_time_format_extended_specifier;
+  <span class="bold"><strong>static</strong></span> const char_type * default_time_input_format;
+  <span class="bold"><strong>static</strong></span> const char_type * default_time_duration_format;
+  <span class="bold"><strong>static</strong></span> std::locale::id id;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1139761"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1139764"></a><h3>
+<a name="time_input_facetconstruct-copy-destruct"></a><code class="computeroutput">time_input_facet</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id943564-bb"></a>time_input_facet(<span class="bold"><strong>const</strong></span> string_type &amp; format, ::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id943598-bb"></a>time_input_facet(<span class="bold"><strong>const</strong></span> string_type &amp; format,
+                 <span class="bold"><strong>const</strong></span> format_date_parser_type &amp; date_parser,
+                 <span class="bold"><strong>const</strong></span> special_values_parser_type &amp; sv_parser,
+                 <span class="bold"><strong>const</strong></span> period_parser_type &amp; per_parser,
+                 <span class="bold"><strong>const</strong></span> date_gen_parser_type &amp; date_gen_parser,
+                 ::size_t a_ref = 0);</pre></li>
+<li><pre class="literallayout"><a name="id943670-bb"></a>time_input_facet(::size_t a_ref = 0);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1139856"></a><h3>
+<a name="id733135-bb"></a><code class="computeroutput">time_input_facet</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id733140-bb"></a>time_duration_format(<span class="bold"><strong>const</strong></span> char_type *<span class="bold"><strong>const</strong></span> format) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id863470-bb"></a>set_iso_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id863482-bb"></a>set_iso_extended_format() ;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id863496-bb"></a>get(InItrT &amp; sitr, InItrT &amp; stream_end, std::ios_base &amp; a_ios,
+           period_type &amp; p) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id723093-bb"></a>get(InItrT &amp; sitr, InItrT &amp; stream_end, std::ios_base &amp; a_ios,
+           time_duration_type &amp; td) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id829901-bb"></a>get(InItrT &amp; sitr, InItrT &amp; stream_end, std::ios_base &amp; a_ios,
+           time_type &amp; t) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id752089-bb"></a>get_local_time(InItrT &amp; sitr, InItrT &amp; stream_end,
+                      std::ios_base &amp; a_ios, time_type &amp; t,
+                      string_type &amp; tz_str) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1140036"></a><h3>
+<a name="id728170-bb"></a><code class="computeroutput">time_input_facet</code> protected member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">InItrT</span> <a name="id728176-bb"></a>get(InItrT &amp; sitr, InItrT &amp; stream_end, std::ios_base &amp; a_ios,
+           time_type &amp; t, string_type &amp; tz_str, <span class="bold"><strong>bool</strong></span> time_is_local) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> temporal_type&gt;
+  <span class="type">InItrT</span> <a name="id857169-bb"></a>check_special_value(InItrT &amp; sitr, InItrT &amp; stream_end,
+                             temporal_type &amp; tt, char_type c = '\0') <span class="bold"><strong>const</strong></span>;</pre>
+<p>First character may have been consumed during original parse attempt. Parameter 'c' should be a copy of that character. Throws ios_base::failure if parse fails. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id870128-bb"></a>parse_frac_type(InItrT &amp; sitr, InItrT &amp; stream_end,
+                     fracional_seconds_type &amp; frac) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1140139"></a><h3>
+<a name="id827432-bb"></a><code class="computeroutput">time_input_facet</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type&gt;
+  <span class="type">int_type</span> <a name="id827438-bb"></a>decimal_adjust(int_type val, <span class="bold"><strong>const</strong></span> <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> places) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="time_facet.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id695070"><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="id838605.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_itr.html b/doc/html/time_itr.html
new file mode 100644
index 0000000000..700f0b28c6
--- /dev/null
+++ b/doc/html/time_itr.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_itr</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1003720" title="Header &lt;boost/date_time/time_iterator.hpp&gt;">
+<link rel="prev" href="id1003606.html" title="Class template ostream_time_period_formatter">
+<link rel="next" href="id1004063.html" title="Function template parse_delimited_time_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1003606.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1003720"><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="id1004063.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_itr"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_itr</span></h2>
+<p>boost::date_time::time_itr &#8212; Simple time iterator skeleton class. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type&gt;
+<span class="bold"><strong>class</strong></span> time_itr {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type time_duration_type;
+
+  <span class="emphasis"><em>// <a href="time_itr.html#time_itrconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_itr.html#id1003971-bb">time_itr</a>(time_type, time_duration_type);
+
+  <span class="emphasis"><em>// <a href="time_itr.html#id1003765-bb">public member functions</a></em></span>
+  <span class="type"><a href="time_itr.html" title="Class template time_itr">time_itr</a> &amp;</span> <a href="time_itr.html#id1003771-bb"><span class="bold"><strong>operator</strong></span>++</a>() ;
+  <span class="type"><a href="time_itr.html" title="Class template time_itr">time_itr</a> &amp;</span> <a href="time_itr.html#id1003786-bb"><span class="bold"><strong>operator</strong></span>--</a>() ;
+  <span class="type">time_type</span> <a href="time_itr.html#id1003802-bb"><span class="bold"><strong>operator</strong></span> *</a>() ;
+  <span class="type">time_type *</span> <a href="time_itr.html#id1003814-bb"><span class="bold"><strong>operator</strong></span>-&gt;</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003827-bb"><span class="bold"><strong>operator</strong></span>&lt;</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003851-bb"><span class="bold"><strong>operator</strong></span>&lt;=</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003875-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003898-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003922-bb"><span class="bold"><strong>operator</strong></span>&gt;</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_itr.html#id1003946-bb"><span class="bold"><strong>operator</strong></span>&gt;=</a>(<span class="bold"><strong>const</strong></span> time_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1141051"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1141054"></a><h3>
+<a name="time_itrconstruct-copy-destruct"></a><code class="computeroutput">time_itr</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1003971-bb"></a>time_itr(time_type t, time_duration_type d);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1141081"></a><h3>
+<a name="id1003765-bb"></a><code class="computeroutput">time_itr</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><a href="time_itr.html" title="Class template time_itr">time_itr</a> &amp;</span> <a name="id1003771-bb"></a><span class="bold"><strong>operator</strong></span>++() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><a href="time_itr.html" title="Class template time_itr">time_itr</a> &amp;</span> <a name="id1003786-bb"></a><span class="bold"><strong>operator</strong></span>--() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type</span> <a name="id1003802-bb"></a><span class="bold"><strong>operator</strong></span> *() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_type *</span> <a name="id1003814-bb"></a><span class="bold"><strong>operator</strong></span>-&gt;() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003827-bb"></a><span class="bold"><strong>operator</strong></span>&lt;(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003851-bb"></a><span class="bold"><strong>operator</strong></span>&lt;=(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003875-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003898-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003922-bb"></a><span class="bold"><strong>operator</strong></span>&gt;(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1003946-bb"></a><span class="bold"><strong>operator</strong></span>&gt;=(<span class="bold"><strong>const</strong></span> time_type &amp; t) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1003606.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1003720"><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="id1004063.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_label_invalid.html b/doc/html/time_label_invalid.html
new file mode 100644
index 0000000000..29c309b0b1
--- /dev/null
+++ b/doc/html/time_label_invalid.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct time_label_invalid</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1106303" title="Header &lt;boost/date_time/local_time/local_date_time.hpp&gt;">
+<link rel="prev" href="ambiguous_result.html" title="Struct ambiguous_result">
+<link rel="next" href="dst_not_valid.html" title="Struct dst_not_valid">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ambiguous_result.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="dst_not_valid.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_label_invalid"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct time_label_invalid</span></h2>
+<p>boost::local_time::time_label_invalid &#8212; simple exception for when time label given cannot exist </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"><strong>struct</strong></span> time_label_invalid {
+  <span class="emphasis"><em>// <a href="time_label_invalid.html#time_label_invalidconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_label_invalid.html#id797603-bb">time_label_invalid</a>(std::string = "");
+
+  <span class="emphasis"><em>// <a href="time_label_invalid.html#id797597-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1181237"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1181240"></a><h3>
+<a name="time_label_invalidconstruct-copy-destruct"></a><code class="computeroutput">time_label_invalid</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id797603-bb"></a>time_label_invalid(std::string _msg = "");</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1181275"></a><h3>
+<a name="id797597-bb"></a><code class="computeroutput">time_label_invalid</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ambiguous_result.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1106303"><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="dst_not_valid.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_resolution_traits.html b/doc/html/time_resolution_traits.html
new file mode 100644
index 0000000000..629fe0887c
--- /dev/null
+++ b/doc/html/time_resolution_traits.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_resolution_traits</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1004309" title="Header &lt;boost/date_time/time_resolution_traits.hpp&gt;">
+<link rel="prev" href="id1004573.html" title="Struct time_resolution_traits_adapted64_impl">
+<link rel="next" href="counted_time_rep.html" title="Struct template counted_time_rep">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004573.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="counted_time_rep.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_resolution_traits"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_resolution_traits</span></h2>
+<p>boost::date_time::time_resolution_traits &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> frac_sec_type, time_resolutions res,
+         #<span class="bold"><strong>if</strong></span>(defined(BOOST_MSVC)&amp;&amp;(_MSC_VER&lt;=1200)) boost::int64_t resolution_adjust,
+         #<span class="bold"><strong>else</strong></span> <span class="bold"><strong>typename</strong></span> frac_sec_type::int_type resolution_adjust,
+         #endif <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> frac_digits, <span class="bold"><strong>typename</strong></span> v_type = boost::int32_t&gt;
+<span class="bold"><strong>class</strong></span> time_resolution_traits {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> frac_sec_type::int_type  fractional_seconds_type;
+  <span class="bold"><strong>typedef</strong></span> frac_sec_type::int_type  tick_type;              
+  <span class="bold"><strong>typedef</strong></span> frac_sec_type::impl_type impl_type;              
+  <span class="bold"><strong>typedef</strong></span> v_type                   day_type;               
+  <span class="bold"><strong>typedef</strong></span> v_type                   hour_type;              
+  <span class="bold"><strong>typedef</strong></span> v_type                   min_type;               
+  <span class="bold"><strong>typedef</strong></span> v_type                   sec_type;               
+
+  <span class="emphasis"><em>// <a href="time_resolution_traits.html#id798168-bb">public member functions</a></em></span>
+  <span class="type"></span> <a href="time_resolution_traits.html#id798173-bb">BOOST_STATIC_CONSTANT</a>(<span class="bold"><strong>int</strong></span>, ticks_per_second = resolution_adjust) ;
+
+  <span class="emphasis"><em>// <a href="time_resolution_traits.html#id798212-bb">public static functions</a></em></span>
+  <span class="type">frac_sec_type::int_type</span> <a href="time_resolution_traits.html#id798218-bb">as_number</a>(<span class="bold"><strong>typename</strong></span> frac_sec_type::impl_type) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="time_resolution_traits.html#id859249-bb">is_adapted</a>() ;
+  <span class="type">time_resolutions</span> <a href="time_resolution_traits.html#id722069-bb">resolution</a>() ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a href="time_resolution_traits.html#id722082-bb">num_fractional_digits</a>() ;
+  <span class="type">fractional_seconds_type</span> <a href="time_resolution_traits.html#id698553-bb">res_adjust</a>() ;
+  <span class="type">tick_type</span> <a href="time_resolution_traits.html#id698566-bb">to_tick_count</a>(hour_type, min_type, sec_type,
+                          fractional_seconds_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1142713"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1142716"></a><h3>
+<a name="id798168-bb"></a><code class="computeroutput">time_resolution_traits</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id798173-bb"></a>BOOST_STATIC_CONSTANT(<span class="bold"><strong>int</strong></span> , ticks_per_second = resolution_adjust) ;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1142755"></a><h3>
+<a name="id798212-bb"></a><code class="computeroutput">time_resolution_traits</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">frac_sec_type::int_type</span> <a name="id798218-bb"></a>as_number(<span class="bold"><strong>typename</strong></span> frac_sec_type::impl_type i) ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id859249-bb"></a>is_adapted() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_resolutions</span> <a name="id722069-bb"></a>resolution() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span></span> <a name="id722082-bb"></a>num_fractional_digits() ;</pre></li>
+<li><pre class="literallayout"><span class="type">fractional_seconds_type</span> <a name="id698553-bb"></a>res_adjust() ;</pre></li>
+<li><pre class="literallayout"><span class="type">tick_type</span> <a name="id698566-bb"></a>to_tick_count(hour_type hours, min_type minutes, sec_type seconds,
+                        fractional_seconds_type fs) ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1004573.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1004309"><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="counted_time_rep.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_zone.html b/doc/html/time_zone.html
new file mode 100644
index 0000000000..fe1cf62a4d
--- /dev/null
+++ b/doc/html/time_zone.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class time_zone</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045002" title="Header &lt;boost/date_time/local_time/time_zone.hpp&gt;">
+<link rel="prev" href="posix_time_zone.html" title="Class posix_time_zone">
+<link rel="next" href="function.html" title="Chapter 4. Boost.Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045002"><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="function.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_zone"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class time_zone</span></h2>
+<p>boost::local_time::time_zone &#8212; A real time zone. </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"><strong>class</strong></span> time_zone {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> boost::posix_time::time_duration time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> time_zone_base                   base_type;         
+  <span class="bold"><strong>typedef</strong></span> base_type::string_type           string_type;       
+  <span class="bold"><strong>typedef</strong></span> base_type::stringstream_type     stringstream_type; 
+
+  <span class="emphasis"><em>// <a href="time_zone.html#time_zoneconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_zone.html#id1000445-bb">time_zone</a>(<span class="bold"><strong>const</strong></span> time_zone_names &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;,
+            <span class="bold"><strong>const</strong></span> dst_adjustment_offsets &amp;,
+            boost::shared_ptr&lt; dst_calc_rule &gt;);
+  <a href="time_zone.html#id1111578-bb">~time_zone</a>();
+
+  <span class="emphasis"><em>// <a href="time_zone.html#id794388-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="time_zone.html#id794394-bb">dst_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="time_zone.html#id1113822-bb">std_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="time_zone.html#id1113835-bb">dst_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="time_zone.html#id872452-bb">std_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="time_zone.html#id872464-bb">has_dst</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="time_zone.html#id901740-bb">dst_local_start_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a href="time_zone.html#id999583-bb">dst_local_end_time</a>(gregorian::greg_year) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="time_zone.html#id932109-bb">base_utc_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="time_zone.html#id928701-bb">dst_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone.html#id1074729-bb">to_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1185734"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1185738"></a><h3>
+<a name="time_zoneconstruct-copy-destruct"></a><code class="computeroutput">time_zone</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1000445-bb"></a>time_zone(<span class="bold"><strong>const</strong></span> time_zone_names &amp; zone_names,
+          <span class="bold"><strong>const</strong></span> time_duration_type &amp; base_utc_offset,
+          <span class="bold"><strong>const</strong></span> dst_adjustment_offsets &amp; dst_offset,
+          boost::shared_ptr&lt; dst_calc_rule &gt; calc_rule);</pre></li>
+<li><pre class="literallayout"><a name="id1111578-bb"></a>~time_zone();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1185806"></a><h3>
+<a name="id794388-bb"></a><code class="computeroutput">time_zone</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id794394-bb"></a>dst_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1113822-bb"></a>std_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1113835-bb"></a>dst_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id872452-bb"></a>std_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id872464-bb"></a>has_dst() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id901740-bb"></a>dst_local_start_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> posix_time::ptime</span> <a name="id999583-bb"></a>dst_local_end_time(gregorian::greg_year y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id932109-bb"></a>base_utc_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id928701-bb"></a>dst_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id1074729-bb"></a>to_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="posix_time_zone.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045002"><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="function.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_zone_base.html b/doc/html/time_zone_base.html
new file mode 100644
index 0000000000..80752c18c4
--- /dev/null
+++ b/doc/html/time_zone_base.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_zone_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id832253" title="Header &lt;boost/date_time/time_zone_base.hpp&gt;">
+<link rel="prev" href="split_timedate_system.html" title="Class template split_timedate_system">
+<link rel="next" href="id895555.html" title="Class template dst_adjustment_offsets">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_timedate_system.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id832253"><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="id895555.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_zone_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_zone_base</span></h2>
+<p>boost::date_time::time_zone_base &#8212; Interface class for dynamic time zones. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_type, <span class="bold"><strong>typename</strong></span> CharT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> time_zone_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt;       string_type;       
+  <span class="bold"><strong>typedef</strong></span> std::basic_stringstream&lt; CharT &gt; stringstream_type; 
+  <span class="bold"><strong>typedef</strong></span> time_type::date_type::year_type  year_type;         
+  <span class="bold"><strong>typedef</strong></span> time_type::time_duration_type    time_duration_type;
+
+  <span class="emphasis"><em>// <a href="time_zone_base.html#time_zone_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_zone_base.html#id895548-bb">time_zone_base</a>();
+  <a href="time_zone_base.html#id895551-bb">~time_zone_base</a>();
+
+  <span class="emphasis"><em>// <a href="time_zone_base.html#id934963-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone_base.html#id934968-bb">dst_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone_base.html#id1076052-bb">std_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone_base.html#id1038551-bb">dst_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone_base.html#id1038569-bb">std_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="time_zone_base.html#id1038587-bb">has_dst</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_type</span> <a href="time_zone_base.html#id1038605-bb">dst_local_start_time</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_type</span> <a href="time_zone_base.html#id1038967-bb">dst_local_end_time</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="time_zone_base.html#id895633-bb">base_utc_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a href="time_zone_base.html#id1075053-bb">dst_offset</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a href="time_zone_base.html#id897785-bb">to_posix_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1145818"></a><h2>Description</h2>
+<p>This class represents the base interface for all timezone representations. Subclasses may provide different systems for identifying a particular zone. For example some may provide a geographical based zone construction while others may specify the offset from GMT. Another possible implementation would be to convert from POSIX timezone strings. Regardless of the construction technique, this is the interface that these time zone types must provide.</p>
+<p>Note that this class is intended to be used as a shared resource (hence the derivation from boost::counted_base. </p>
+<div class="refsect2" lang="en">
+<a name="id1145836"></a><h3>
+<a name="time_zone_baseconstruct-copy-destruct"></a><code class="computeroutput">time_zone_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id895548-bb"></a>time_zone_base();</pre></li>
+<li><pre class="literallayout"><a name="id895551-bb"></a>~time_zone_base();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1145883"></a><h3>
+<a name="id934963-bb"></a><code class="computeroutput">time_zone_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id934968-bb"></a>dst_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id1076052-bb"></a>std_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id1038551-bb"></a>dst_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id1038569-bb"></a>std_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id1038587-bb"></a>has_dst() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_type</span> <a name="id1038605-bb"></a>dst_local_start_time(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_type</span> <a name="id1038967-bb"></a>dst_local_end_time(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id895633-bb"></a>base_utc_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> time_duration_type</span> <a name="id1075053-bb"></a>dst_offset() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> string_type</span> <a name="id897785-bb"></a>to_posix_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="split_timedate_system.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id832253"><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="id895555.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/time_zone_names_base.html b/doc/html/time_zone_names_base.html
new file mode 100644
index 0000000000..0996c3023b
--- /dev/null
+++ b/doc/html/time_zone_names_base.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template time_zone_names_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id977629" title="Header &lt;boost/date_time/time_zone_names.hpp&gt;">
+<link rel="prev" href="id895555.html" title="Class template dst_adjustment_offsets">
+<link rel="next" href="data_not_accessible.html" title="Struct data_not_accessible">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id895555.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977629"><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="data_not_accessible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="time_zone_names_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template time_zone_names_base</span></h2>
+<p>boost::date_time::time_zone_names_base &#8212; Base type that holds various string names for timezone output. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> time_zone_names_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; CharT &gt; string_type;
+
+  <span class="emphasis"><em>// <a href="time_zone_names_base.html#time_zone_names_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="time_zone_names_base.html#id793600-bb">time_zone_names_base</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;,
+                       <span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;);
+
+  <span class="emphasis"><em>// <a href="time_zone_names_base.html#id1001564-bb">public member functions</a></em></span>
+  <span class="type">string_type</span> <a href="time_zone_names_base.html#id1001569-bb">dst_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">string_type</span> <a href="time_zone_names_base.html#id1108765-bb">std_zone_abbrev</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">string_type</span> <a href="time_zone_names_base.html#id793573-bb">dst_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">string_type</span> <a href="time_zone_names_base.html#id793586-bb">std_zone_name</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1146627"></a><h2>Description</h2>
+<p>Class that holds various types of strings used for timezones. For example, for the western United States there is the full name: Pacific Standard Time and the abbreviated name: PST. During daylight savings there are additional names: Pacific Daylight Time and PDT. CharT Allows class to support different character types </p>
+<div class="refsect2" lang="en">
+<a name="id1146638"></a><h3>
+<a name="time_zone_names_baseconstruct-copy-destruct"></a><code class="computeroutput">time_zone_names_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id793600-bb"></a>time_zone_names_base(<span class="bold"><strong>const</strong></span> string_type &amp; std_zone_name,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; std_zone_abbrev,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; dst_zone_name,
+                     <span class="bold"><strong>const</strong></span> string_type &amp; dst_zone_abbrev);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1146702"></a><h3>
+<a name="id1001564-bb"></a><code class="computeroutput">time_zone_names_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id1001569-bb"></a>dst_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id1108765-bb"></a>std_zone_abbrev() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id793573-bb"></a>dst_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">string_type</span> <a name="id793586-bb"></a>std_zone_name() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id895555.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id977629"><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="data_not_accessible.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/timed_mutex.html b/doc/html/timed_mutex.html
new file mode 100644
index 0000000000..5fe4398bfd
--- /dev/null
+++ b/doc/html/timed_mutex.html
@@ -0,0 +1,143 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class timed_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id868118" title="Header &lt;boost/thread/mutex.hpp&gt;">
+<link rel="prev" href="try_mutex.html" title="Class try_mutex">
+<link rel="next" href="BOOST_ONCE_INIT.html" title="Macro BOOST_ONCE_INIT">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="try_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="BOOST_ONCE_INIT.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="timed_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class timed_mutex</span></h2>
+<p>boost::timed_mutex &#8212; <p>The <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> concept.</p></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"><strong>class</strong></span> timed_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_lock;  
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_timed_lock;
+
+  <span class="emphasis"><em>// <a href="timed_mutex.html#timed_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="timed_mutex.html#id1220728-bb">timed_mutex</a>();
+  <a href="timed_mutex.html#id1175673-bb">~timed_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1559327"></a><h2>Description</h2>
+<p>The <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedMutex" title="TimedMutex Concept">TimedMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="mutex.html" title="Class mutex">mutex</a> and <a href="try_mutex.html" title="Class try_mutex">try_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics, see <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a>,
+ <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a>, and <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>.
+ </p>
+<p>The <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> class supplies the following typedefs,
+ which <a href="threads/concepts.html#threads.concepts.lock-models" title="Lock Models">model</a>
+ the specified locking strategies:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_timed_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p>The <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1559550"></a><h3>
+<a name="timed_mutexconstruct-copy-destruct"></a><code class="computeroutput">timed_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1220728-bb"></a>timed_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1175673-bb"></a>~timed_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="try_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="BOOST_ONCE_INIT.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/timed_read_write_mutex.html b/doc/html/timed_read_write_mutex.html
new file mode 100644
index 0000000000..5bd039aac0
--- /dev/null
+++ b/doc/html/timed_read_write_mutex.html
@@ -0,0 +1,181 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class timed_read_write_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id693680" title="Header &lt;boost/thread/read_write_mutex.hpp&gt;">
+<link rel="prev" href="try_read_write_mutex.html" title="Class try_read_write_mutex">
+<link rel="next" href="thread.html" title="Class thread">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="try_read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="thread.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="timed_read_write_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class timed_read_write_mutex</span></h2>
+<p>boost::timed_read_write_mutex &#8212; <p>The <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedReadWriteMutex" title="TimedReadWriteMutex Concept">TimedReadWriteMutex</a> concept.</p></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"><strong>class</strong></span> timed_read_write_mutex {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_write_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_read_write_lock;  
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_timed_read_write_lock;
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_lock;            
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_read_lock;        
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_timed_read_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_write_lock;           
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_write_lock;       
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_timed_write_lock;     
+
+  <span class="emphasis"><em>// <a href="timed_read_write_mutex.html#timed_read_write_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="timed_read_write_mutex.html#id894380-bb">timed_read_write_mutex</a>(boost::read_write_scheduling_policy);
+  <a href="timed_read_write_mutex.html#id999914-bb">~timed_read_write_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1562699"></a><h2>Description</h2>
+<p>The <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TimedReadWriteMutex" title="TimedReadWriteMutex Concept">TimedReadWriteMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> and <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a>.</p>
+<p>The <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> class supplies the following typedefs,
+ which <a href="threads/concepts.html#threads.concepts.read-write-lock-models" title="Lock Models">model</a>
+ the specified locking strategies:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryReadWriteLock" title="ScopedTryReadWriteLock Expressions">ScopedTryReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_timed_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTimedReadWriteLock" title="ScopedTimedReadWriteLock Concept">ScopedTimedReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_timed_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_timed_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTimedLock" title="ScopedTimedLock Concept">ScopedTimedLock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p>The <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.read-write-mutex-models" title="Mutex Models">read/write mutex models</a>
+ in , <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> has two types of
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies" title="Scheduling Policies">scheduling policies</a>, an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ between threads trying to obtain different types of locks and an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a>
+ between threads trying to obtain the same type of lock.
+ The <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> class allows the
+ programmer to choose what
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ will be used; however, like all read/write mutex models,
+ <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a> as
+ <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Self-deadlock is virtually guaranteed if a thread tries to
+ lock the same <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> multiple times
+ unless all locks are read-locks (but see below)</div>
+<div class="refsect2" lang="en">
+<a name="id1563031"></a><h3>
+<a name="timed_read_write_mutexconstruct-copy-destruct"></a><code class="computeroutput">timed_read_write_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id894380-bb"></a>timed_read_write_mutex(boost::read_write_scheduling_policy count);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id999914-bb"></a>~timed_read_write_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="try_read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="thread.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/to_lower.html b/doc/html/to_lower.html
new file mode 100644
index 0000000000..2c90723320
--- /dev/null
+++ b/doc/html/to_lower.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template to_lower</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1184719" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">
+<link rel="prev" href="to_lower_copy.html" title="Function to_lower_copy">
+<link rel="next" href="to_upper_copy.html" title="Function to_upper_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_lower_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_upper_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="to_lower"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template to_lower</span></h2>
+<p>boost::algorithm::to_lower &#8212; Convert to lower case. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> WritableRangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> to_lower(WritableRangeT &amp; Input,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1312177"></a><h2>Description</h2>
+<p>Each element of the input sequence is converted to lower case. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>A range </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>a locale used for conversion </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_lower_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_upper_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/to_lower_copy.html b/doc/html/to_lower_copy.html
new file mode 100644
index 0000000000..a5c46a53ba
--- /dev/null
+++ b/doc/html/to_lower_copy.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function to_lower_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1184719" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">
+<link rel="prev" href="string_algo/reference.html" title="Reference">
+<link rel="next" href="to_lower.html" title="Function template to_lower">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_algo/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_lower.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="to_lower_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function to_lower_copy</span></h2>
+<p>boost::algorithm::to_lower_copy &#8212; Convert to lower case. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">OutputIteratorT</span>
+  to_lower_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> to_lower_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1312070"></a><h2>Description</h2>
+<p>Each element of the input sequence is converted to lower case. The result is a copy of the input converted to lower case. It is returned as a sequence or copied to the output iterator.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for conversion </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="string_algo/reference.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_lower.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/to_upper.html b/doc/html/to_upper.html
new file mode 100644
index 0000000000..18a54119c9
--- /dev/null
+++ b/doc/html/to_upper.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template to_upper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1184719" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">
+<link rel="prev" href="to_upper_copy.html" title="Function to_upper_copy">
+<link rel="next" href="is_classified.html" title="Function is_classified">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_upper_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="is_classified.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="to_upper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template to_upper</span></h2>
+<p>boost::algorithm::to_upper &#8212; Convert to upper case. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> WritableRangeT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> to_upper(WritableRangeT &amp; Input,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1312404"></a><h2>Description</h2>
+<p>Each element of the input sequence is converted to upper case. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>a locale used for conversion </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_upper_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="is_classified.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/to_upper_copy.html b/doc/html/to_upper_copy.html
new file mode 100644
index 0000000000..5da6524491
--- /dev/null
+++ b/doc/html/to_upper_copy.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function to_upper_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id1184719" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">
+<link rel="prev" href="to_lower.html" title="Function template to_lower">
+<link rel="next" href="to_upper.html" title="Function template to_upper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_lower.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_upper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="to_upper_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function to_upper_copy</span></h2>
+<p>boost::algorithm::to_upper_copy &#8212; Convert to upper case. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT&gt;
+  <span class="type">OutputIteratorT</span>
+  to_upper_copy(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> to_upper_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                          <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1312296"></a><h2>Description</h2>
+<p>Each element of the input sequence is converted to upper case. The result is a copy of the input converted to upper case. It is returned as a sequence or copied to the output iterator</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for conversion </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="to_lower.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id1184719"><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="to_upper.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/token_finder.html b/doc/html/token_finder.html
new file mode 100644
index 0000000000..8592784a68
--- /dev/null
+++ b/doc/html/token_finder.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template token_finder</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id692668" title="Header &lt;boost/algorithm/string/finder.hpp&gt;">
+<link rel="prev" href="tail_finder.html" title="Function tail_finder">
+<link rel="next" href="range_finder.html" title="Function range_finder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tail_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="range_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="token_finder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template token_finder</span></h2>
+<p>boost::algorithm::token_finder &#8212; "Token" finder </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="emphasis"><em>unspecified</em></span></span> token_finder(PredicateT Pred,
+                           token_compress_mode_type eCompress = token_compress_off);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1325272"></a><h2>Description</h2>
+<p>Construct the <code class="computeroutput">token_finder</code> . The finder searches for a token specified by a predicate. It is similar to std::find_if algorithm, with an exception that it return a range of instead of a single iterator.</p>
+<p>If "compress token mode" is enabled, adjacent matching tokens are concatenated into one match. Thus the finder can be used to search for continuous segments of characters satisfying the given predicate.</p>
+<p>The result is given as an <code class="computeroutput">iterator_range</code> delimiting the match.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Pred</span></dt>
+<dd><p>An element selection predicate </p></dd>
+<dt><span class="term">eCompress</span></dt>
+<dd><p>Compress flag </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An instance of the <code class="computeroutput">token_finder</code> object </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tail_finder.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id692668"><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="range_finder.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trackable.html b/doc/html/trackable.html
new file mode 100644
index 0000000000..f6f449d7cc
--- /dev/null
+++ b/doc/html/trackable.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class trackable</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id1033936" title="Header &lt;boost/signals/trackable.hpp&gt;">
+<link rel="prev" href="slot.html" title="Class template slot">
+<link rel="next" href="connection.html" title="Class connection">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="slot.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1033936"><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="connection.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trackable"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class trackable</span></h2>
+<p>boost::signals::trackable &#8212; Enables safe use of multicast callbacks.</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"><strong>class</strong></span> trackable {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="trackable.html#trackableconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="trackable.html#id725156-bb">trackable</a>();
+  <a href="trackable.html#id796620-bb">trackable</a>(<span class="bold"><strong>const</strong></span> <a href="trackable.html" title="Class trackable">trackable</a>&amp;);
+  trackable&amp; <a href="trackable.html#id1040536-bb"><span class="bold"><strong>operator</strong></span>=</a>(<span class="bold"><strong>const</strong></span> <a href="trackable.html" title="Class trackable">trackable</a>&amp;);
+  <a href="trackable.html#id720849-bb">~trackable</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1284537"></a><h2>Description</h2>
+<p>The <code class="computeroutput">trackable</code> class provides automatic
+ disconnection of signals and slots when objects bound in
+ slots (via pointer or reference) are destroyed. The
+ <code class="computeroutput">trackable</code> class may only be used as a public
+ base class for some other class; when used as such, that
+ class may be bound to function objects used as part of
+ slots. The manner in which a <code class="computeroutput">trackable</code> object
+ tracks the set of signal-slot connections it is a part of is
+ unspecified.</p>
+<p>The actual use of <code class="computeroutput">trackable</code> is contingent
+ on the presence of appropriate
+ <a href="visit_each.html" title="Function template visit_each">visit_each</a> overloads for any
+ type that may contain pointers or references to trackable
+ objects.</p>
+<div class="refsect2" lang="en">
+<a name="id1284586"></a><h3>
+<a name="trackableconstruct-copy-destruct"></a><code class="computeroutput">trackable</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id725156-bb"></a>trackable();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Sets the list of connected slots to empty.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id796620-bb"></a>trackable(<span class="bold"><strong>const</strong></span> <a href="trackable.html" title="Class trackable">trackable</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Sets the list of connected slots to empty.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</p>
+</li>
+<li>
+<pre class="literallayout">trackable&amp; <a name="id1040536-bb"></a><span class="bold"><strong>operator</strong></span>=(<span class="bold"><strong>const</strong></span> <a href="trackable.html" title="Class trackable">trackable</a>&amp; other);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Sets the list of connected slots to empty.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">*this</code><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Rationale</span></b>:
+
+ Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</p>
+</li>
+<li>
+<pre class="literallayout"><a name="id720849-bb"></a>~trackable();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Disconnects all signal/slot connections that
+ contain a pointer or reference to this trackable object that
+ can be found by
+ <a href="visit_each.html" title="Function template visit_each">visit_each</a>.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="slot.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1033936"><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="connection.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/tribool.html b/doc/html/tribool.html
index d7e46aa86a..2f7ff6ede3 100644
--- a/doc/html/tribool.html
+++ b/doc/html/tribool.html
@@ -1,10 +1,80 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/tribool.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/tribool.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/tribool.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 13. Boost.Tribool</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="thread/acknowledgements.html" title="Acknowledgements">
+<link rel="next" href="tribool/tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread/acknowledgements.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="tribool/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="tribool"></a>Chapter 13. Boost.Tribool</h2></div>
+<div><div class="author">
+<h3 class="author">
+<span class="firstname">Douglas</span> <span class="surname">Gregor</span>
+</h3>
+<code class="email">&lt;<a href="mailto:dgregor%20-at-%20cs.indiana.edu">dgregor -at- cs.indiana.edu</a>&gt;</code>
+</div></div>
+<div><p class="copyright">Copyright © 2002-2004 Douglas Gregor</p></div>
+<div><div class="legalnotice">
+<a name="id1567936"></a><p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="tribool.html#tribool.introduction">Introduction</a></span></dt>
+<dt><span class="section"><a href="tribool/tutorial.html">Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="tribool/tutorial.html#id1567990">Basic usage</a></span></dt>
+<dt><span class="section"><a href="tribool/tutorial.html#id1568440">Renaming the indeterminate state</a></span></dt>
+<dt><span class="section"><a href="tribool/tutorial.html#id1568520"><code class="computeroutput">tribool</code> input/output</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="tribool/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="tribool/reference.html#id996838">Header &lt;boost/logic/tribool.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="tribool/reference.html#id1277326">Header &lt;boost/logic/tribool_fwd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="tribool/reference.html#id1277344">Header &lt;boost/logic/tribool_io.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="tribool/tests.html">Testsuite</a></span></dt>
+<dd><dl><dt><span class="section"><a href="tribool/tests.html#tribool.tests.acceptance">Acceptance tests</a></span></dt></dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tribool.introduction"></a>Introduction</h3></div></div></div>
+<p>The 3-state boolean library contains a single class,
+ <code class="computeroutput"><a href="boost/logic/tribool.html" title="Class tribool">boost::logic::tribool</a></code>, along with
+ support functions and operator overloads that implement 3-state
+ boolean logic. </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><small><p>Last revised: July 25, 2004 at 03:01:38 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thread/acknowledgements.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="tribool/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/tribool/reference.html b/doc/html/tribool/reference.html
new file mode 100644
index 0000000000..fe234a1656
--- /dev/null
+++ b/doc/html/tribool/reference.html
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tribool.html" title="Chapter 13. Boost.Tribool">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="../boost/logic/tribool.html" title="Class tribool">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="../boost/logic/tribool.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="tribool.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#id996838">Header &lt;boost/logic/tribool.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1277326">Header &lt;boost/logic/tribool_fwd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1277344">Header &lt;boost/logic/tribool_io.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id996838"></a>Header &lt;<a href="../../../boost/logic/tribool.hpp" target="_top">boost/logic/tribool.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis">
+
+<a href="../BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</a>(Name)</pre>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> logic {
+    <span class="bold"><strong>class</strong></span> <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>;
+    <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="../indeterminate.html" title="Function indeterminate">indeterminate</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <span class="emphasis"><em>unspecified</em></span> = <span class="emphasis"><em>unspecified</em></span>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id866049.html" title="Function operator!"><span class="bold"><strong>operator</strong></span>!</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1081555.html" title="Function operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1081555.html" title="Function operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <span class="bold"><strong>bool</strong></span>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1081555.html" title="Function operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(<span class="bold"><strong>bool</strong></span>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1081555.html" title="Function operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(indeterminate_keyword_t, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1081555.html" title="Function operator&amp;&amp;"><span class="bold"><strong>operator</strong></span>&amp;&amp;</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, indeterminate_keyword_t);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id791859.html" title="Function operator||"><span class="bold"><strong>operator</strong></span>||</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id791859.html" title="Function operator||"><span class="bold"><strong>operator</strong></span>||</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <span class="bold"><strong>bool</strong></span>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id791859.html" title="Function operator||"><span class="bold"><strong>operator</strong></span>||</a>(<span class="bold"><strong>bool</strong></span>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id791859.html" title="Function operator||"><span class="bold"><strong>operator</strong></span>||</a>(indeterminate_keyword_t, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id791859.html" title="Function operator||"><span class="bold"><strong>operator</strong></span>||</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, indeterminate_keyword_t);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id935001.html" title="Function operator=="><span class="bold"><strong>operator</strong></span>==</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id935001.html" title="Function operator=="><span class="bold"><strong>operator</strong></span>==</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <span class="bold"><strong>bool</strong></span>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id935001.html" title="Function operator=="><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>bool</strong></span>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id935001.html" title="Function operator=="><span class="bold"><strong>operator</strong></span>==</a>(indeterminate_keyword_t, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id935001.html" title="Function operator=="><span class="bold"><strong>operator</strong></span>==</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, indeterminate_keyword_t);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1222476.html" title="Function operator!="><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1222476.html" title="Function operator!="><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, <span class="bold"><strong>bool</strong></span>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1222476.html" title="Function operator!="><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>bool</strong></span>, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1222476.html" title="Function operator!="><span class="bold"><strong>operator</strong></span>!=</a>(indeterminate_keyword_t, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="type"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></span> <a href="../id1222476.html" title="Function operator!="><span class="bold"><strong>operator</strong></span>!=</a>(<a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>, indeterminate_keyword_t);
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1277326"></a>Header &lt;<a href="../../../boost/logic/tribool_fwd.hpp" target="_top">boost/logic/tribool_fwd.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> logic {
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1277344"></a>Header &lt;<a href="../../../boost/logic/tribool_io.hpp" target="_top">boost/logic/tribool_io.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> logic {
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT&gt; <span class="bold"><strong>class</strong></span> <a href="../indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a>;
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+      <span class="type">std::basic_string&lt; T &gt;</span> <a href="../id1244293.html" title="Function template get_default_indeterminate_name">get_default_indeterminate_name</a>();
+
+    <span class="emphasis"><em>// Returns the character string "indeterminate". </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;&gt;
+      <span class="type">std::basic_string&lt; <span class="bold"><strong>char</strong></span> &gt;</span> <a name="id894358"></a>get_default_indeterminate_name&lt;<span class="bold"><strong>char</strong></span> &gt;();
+
+    <span class="emphasis"><em>// Returns the wide character string L"indeterminate". </em></span>
+    <span class="bold"><strong>template</strong></span>&lt;&gt;
+      <span class="type">std::basic_string&lt; <span class="bold"><strong>wchar_t</strong></span> &gt;</span> <a name="id1245131"></a>get_default_indeterminate_name&lt;<span class="bold"><strong>wchar_t</strong></span> &gt;();
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_ostream&lt; CharT, Traits &gt; &amp;</span>
+      <a href="../id1245151.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; CharT, Traits &gt; &amp;, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_ostream&lt; CharT, Traits &gt; &amp;</span>
+      <a href="../id1286986.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt; CharT, Traits &gt; &amp;, <span class="emphasis"><em>unspecified</em></span>);
+    <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> CharT, <span class="bold"><strong>typename</strong></span> Traits&gt;
+      <span class="type">std::basic_istream&lt; CharT, Traits &gt; &amp;</span>
+      <a href="../id1287075.html" title="Function template operator&gt;&gt;"><span class="bold"><strong>operator</strong></span>&gt;&gt;</a>(std::basic_istream&lt; CharT, Traits &gt; &amp;, <a href="../boost/logic/tribool.html" title="Class tribool">tribool</a> &amp;);
+  }
+}</pre>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="../boost/logic/tribool.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/tribool/tests.html b/doc/html/tribool/tests.html
new file mode 100644
index 0000000000..9c91b254b4
--- /dev/null
+++ b/doc/html/tribool/tests.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Testsuite</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tribool.html" title="Chapter 13. Boost.Tribool">
+<link rel="prev" href="../id1287075.html" title="Function template operator&gt;&gt;">
+<link rel="next" href="../boost_typetraits.html" title="Chapter 14. Boost.TypeTraits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id1287075.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="../boost_typetraits.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="tribool.tests"></a>Testsuite</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="tests.html#tribool.tests.acceptance">Acceptance tests</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tribool.tests.acceptance"></a>Acceptance tests</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Test</th>
+<th>Type</th>
+<th>Description</th>
+<th>If failing...</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p><a href="../../../libs/logic/test/tribool_test.cpp" target="_top">tribool_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test all features of the
+ <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">boost::logic::tribool</a></code>
+ class.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/logic/test/tribool_rename_test.cpp" target="_top">tribool_rename_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test the use of the
+ <code class="computeroutput"><a href="../BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</a></code>
+ macro.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="../../../libs/logic/test/tribool_io_test.cpp" target="_top">tribool_io_test.cpp</a></p></td>
+<td><p>run</p></td>
+<td><p>Test tribool input/output.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../id1287075.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="../boost_typetraits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/tribool/tutorial.html b/doc/html/tribool/tutorial.html
new file mode 100644
index 0000000000..9b58de387b
--- /dev/null
+++ b/doc/html/tribool/tutorial.html
@@ -0,0 +1,181 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../tribool.html" title="Chapter 13. Boost.Tribool">
+<link rel="prev" href="../tribool.html" title="Chapter 13. Boost.Tribool">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tribool.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="reference.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="tribool.tutorial"></a>Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#id1567990">Basic usage</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1568440">Renaming the indeterminate state</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#id1568520"><code class="computeroutput">tribool</code> input/output</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1567990"></a>Basic usage</h4></div></div></div>
+<p> The <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> class acts
+ like the built-in <code class="computeroutput">bool</code> type, but for 3-state boolean
+ logic. The three states are <code class="computeroutput">true</code>, <code class="computeroutput">false</code>,
+ and <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>, where
+ the first two states are equivalent to those of the C++
+ <code class="computeroutput">bool</code> type and the last state represents an unknown
+ boolean value (that may be <code class="computeroutput">true</code> or
+ <code class="computeroutput">false</code>, we don't know).</p>
+<p> The <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> class
+ supports conversion from <code class="computeroutput">bool</code> values and literals
+ along with its own
+ <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>
+ keyword:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> b(true);
+b = false;
+b = <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>;
+<code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> b2(b);</pre>
+<p><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> supports
+ conversions to <code class="computeroutput">bool</code> for use in conditional
+ statements. The conversion to <code class="computeroutput">bool</code> will be
+ <code class="computeroutput">true</code> when the value of the
+ <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> is always true, and
+ <code class="computeroutput">false</code> otherwise. Consequently, the following idiom
+ may be used to determine which of the three states a
+ <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> currently
+ holds:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> b = some_operation();
+if (b) {
+ // b is true
+}
+else if (!b) {
+ // b is false
+}
+else {
+ // b is indeterminate
+}</pre>
+<p><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> supports the
+ 3-state logic operators <code class="computeroutput">!</code> (negation),
+ <code class="computeroutput">&amp;&amp;</code> (AND), and <code class="computeroutput">||</code> (OR), with
+ <code class="computeroutput">bool</code> and <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code>
+ values. For instance:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x = some_op();
+<code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> y = some_other_op();
+if (x &amp;&amp; y) {
+ // both x and y are true
+}
+else if (!(x &amp;&amp; y)) {
+ // either x or y is false
+}
+else {
+ // neither x nor y is false, but we don't know that both are true
+
+ if (x || y) {
+ // either x or y is true
+ }
+}</pre>
+<p> Similarly, <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code>
+ supports 3-state equality comparisons via the operators
+ <code class="computeroutput">==</code> and <code class="computeroutput">!=</code>. These operators differ from
+ "normal" equality operators in C++ because they return a
+ <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code>, because potentially we
+ might not know the result of a comparison (try to compare
+ <code class="computeroutput">true</code> and
+ <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>). For
+ instance:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x(true);
+<code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> y(<code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>);
+
+assert(x == x); // okay, x == x returns true
+assert(x == true); // okay, can compare <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code>s and bools</pre>
+<p> The <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code> keyword (representing the
+ <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code> <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> value)
+ doubles as a function to check if the value of a
+ <code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> is indeterminate,
+ e.g.,</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x = try_to_do_something_tricky();
+if (<code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>(x)) {
+ // value of x is indeterminate
+}
+else {
+ // report success or failure of x
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1568440"></a>Renaming the indeterminate state</h4></div></div></div>
+<p> Users may introduce additional keywords for the indeterminate
+ value in addition to the implementation-supplied
+ <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code> using the
+ <code class="computeroutput"><a href="../BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</a></code>
+ macro. For instance, the following macro instantiation (at the
+ global scope) will introduce the keyword <code class="computeroutput">maybe</code> as a
+ synonym for <code class="computeroutput"><a href="../indeterminate.html" title="Function indeterminate">indeterminate</a></code>
+ (also residing in the <code class="computeroutput">boost</code> namespace):</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</a></code>(maybe)
+<code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x = maybe;
+if (maybe(x)) { /* ... */ }</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1568520"></a><code class="computeroutput">tribool</code> input/output</h4></div></div></div>
+<p><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> objects may be
+ read from and written to streams by including the
+ <code class="computeroutput"><a href="reference.html#id1277344" title="Header &lt;boost/logic/tribool_io.hpp&gt;">boost/logic/tribool_io.hpp</a></code> header in a
+ manner very similar to <code class="computeroutput">bool</code> values. When the
+ <code class="computeroutput">boolalpha</code> flag is not set on the input/output stream,
+ the integral values 0, 1, and 2 correspond to <code class="computeroutput">tribool</code>
+ values <code class="computeroutput">false</code>, <code class="computeroutput">true</code>, and
+ <code class="computeroutput">indeterminate</code>, respectively. When
+ <code class="computeroutput">boolalpha</code> is set on the stream, arbitrary strings can
+ be used to represent the three values, the default being "false",
+ "true", and "indeterminate". For instance:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x;
+cin &gt;&gt; x; // Type "0", "1", or "2" to get false, true, or indeterminate
+cout &lt;&lt; boolalpha &lt;&lt; x; // Produces "false", "true", or "indeterminate"</pre>
+<p><code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> input and output
+ is sensitive to the stream's current locale. The strings associated
+ with false and true values are contained in the standard
+ <code class="computeroutput">std::numpunct</code> facet, and the
+ string naming the indeterminate type is contained in the
+ <code class="computeroutput"><a href="../indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a></code> facet. To
+ replace the name of the indeterminate state, you need to imbue your
+ stream with a local containing a
+ <code class="computeroutput"><a href="../indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a></code> facet, e.g.:</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../BOOST_TRIBOOL_THIRD_STATE.html" title="Macro BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</a></code>(maybe)
+locale global;
+locale test_locale(global, new <code class="computeroutput"><a href="../indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a></code>&lt;char&gt;("maybe"));
+cout.imbue(test_locale);
+<code class="computeroutput"><a href="../boost/logic/tribool.html" title="Class tribool">tribool</a></code> x(maybe);
+cout &lt;&lt; boolalpha &lt;&lt; x &lt;&lt; endl; // Prints "maybe"</pre>
+<p>If you C++ standard library implementation does not support
+ locales, <code class="computeroutput">tribool</code> input/output will still work, but you
+ will be unable to customize the strings printed/parsed when
+ <code class="computeroutput">boolalpha</code> is set.</p>
+</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 © 2002-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tribool.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tribool.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim.html b/doc/html/trim.html
new file mode 100644
index 0000000000..c7a3a8ba16
--- /dev/null
+++ b/doc/html/trim.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_if.html" title="Function template trim_if">
+<link rel="next" href="string_algo/rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="string_algo/rationale.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim</span></h2>
+<p>boost::algorithm::trim &#8212; Trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356866"></a><h2>Description</h2>
+<p>Remove all leading and trailing spaces from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for 'space' classification </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="string_algo/rationale.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_copy.html b/doc/html/trim_copy.html
new file mode 100644
index 0000000000..f1fdab482b
--- /dev/null
+++ b/doc/html/trim_copy.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_copy_if.html" title="Function trim_copy_if">
+<link rel="next" href="trim_if.html" title="Function template trim_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_copy</span></h2>
+<p>boost::algorithm::trim_copy &#8212; Trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> trim_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                      <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356692"></a><h2>Description</h2>
+<p>Remove all leading and trailing spaces from the input. The result is a trimmed copy of the input</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for 'space' classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A trimmed copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_copy_if.html b/doc/html/trim_copy_if.html
new file mode 100644
index 0000000000..496873a24e
--- /dev/null
+++ b/doc/html/trim_copy_if.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function trim_copy_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_right.html" title="Function template trim_right">
+<link rel="next" href="trim_copy.html" title="Function template trim_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_copy_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function trim_copy_if</span></h2>
+<p>boost::algorithm::trim_copy_if &#8212; Trim - parametric. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">OutputIteratorT</span>
+  trim_copy_if(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+               PredicateT IsSpace);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">SequenceT</span> trim_copy_if(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356580"></a><h2>Description</h2>
+<p>Remove all trailing and leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_if.html b/doc/html/trim_if.html
new file mode 100644
index 0000000000..0ae6b6ee4f
--- /dev/null
+++ b/doc/html/trim_if.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_copy.html" title="Function template trim_copy">
+<link rel="next" href="trim.html" title="Function template trim">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_if</span></h2>
+<p>boost::algorithm::trim_if &#8212; Trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim_if(SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356788"></a><h2>Description</h2>
+<p>Remove all leading and trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_left.html b/doc/html/trim_left.html
new file mode 100644
index 0000000000..270febda52
--- /dev/null
+++ b/doc/html/trim_left.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_left</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_left_if.html" title="Function template trim_left_if">
+<link rel="next" href="trim_right_copy_if.html" title="Function trim_right_copy_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_left"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_left</span></h2>
+<p>boost::algorithm::trim_left &#8212; Left trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim_left(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356060"></a><h2>Description</h2>
+<p>Remove all leading spaces from the input. The Input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for 'space' classification </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_left_copy.html b/doc/html/trim_left_copy.html
new file mode 100644
index 0000000000..c5ebee97dd
--- /dev/null
+++ b/doc/html/trim_left_copy.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_left_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_left_copy_if.html" title="Function trim_left_copy_if">
+<link rel="next" href="trim_left_if.html" title="Function template trim_left_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_left_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_left_copy</span></h2>
+<p>boost::algorithm::trim_left_copy &#8212; Left trim - parametric. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> trim_left_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                           <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1355885"></a><h2>Description</h2>
+<p>Remove all leading spaces from the input. The result is a trimmed copy of the input.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>a locale used for 'space' classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A trimmed copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_left_copy_if.html b/doc/html/trim_left_copy_if.html
new file mode 100644
index 0000000000..1dfd1ed989
--- /dev/null
+++ b/doc/html/trim_left_copy_if.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function trim_left_copy_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="id726784.html" title="Function template split">
+<link rel="next" href="trim_left_copy.html" title="Function template trim_left_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id726784.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_left_copy_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function trim_left_copy_if</span></h2>
+<p>boost::algorithm::trim_left_copy_if &#8212; Left trim - parametric. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">OutputIteratorT</span>
+  trim_left_copy_if(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                    PredicateT IsSpace);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">SequenceT</span> trim_left_copy_if(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1355773"></a><h2>Description</h2>
+<p>Remove all leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id726784.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_left_if.html b/doc/html/trim_left_if.html
new file mode 100644
index 0000000000..556e6ac008
--- /dev/null
+++ b/doc/html/trim_left_if.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_left_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_left_copy.html" title="Function template trim_left_copy">
+<link rel="next" href="trim_left.html" title="Function template trim_left">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_left_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_left_if</span></h2>
+<p>boost::algorithm::trim_left_if &#8212; Left trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim_left_if(SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1355978"></a><h2>Description</h2>
+<p>Remove all leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_left.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_right.html b/doc/html/trim_right.html
new file mode 100644
index 0000000000..a82f05bdbf
--- /dev/null
+++ b/doc/html/trim_right.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_right</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_right_if.html" title="Function template trim_right_if">
+<link rel="next" href="trim_copy_if.html" title="Function trim_copy_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_right"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_right</span></h2>
+<p>boost::algorithm::trim_right &#8212; Right trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim_right(SequenceT &amp; Input, <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356464"></a><h2>Description</h2>
+<p>Remove all trailing spaces from the input. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for 'space' classification </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_copy_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_right_copy.html b/doc/html/trim_right_copy.html
new file mode 100644
index 0000000000..4a335ce2b5
--- /dev/null
+++ b/doc/html/trim_right_copy.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_right_copy</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_right_copy_if.html" title="Function trim_right_copy_if">
+<link rel="next" href="trim_right_if.html" title="Function template trim_right_if">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_right_copy"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_right_copy</span></h2>
+<p>boost::algorithm::trim_right_copy &#8212; Right trim. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT&gt;
+  <span class="type">SequenceT</span> trim_right_copy(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input,
+                            <span class="bold"><strong>const</strong></span> std::locale &amp; Loc = std::locale());</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356290"></a><h2>Description</h2>
+<p>Remove all trailing spaces from the input. The result is a trimmed copy of the input</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">Loc</span></dt>
+<dd><p>A locale used for 'space' classification </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ A trimmed copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ This function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_copy_if.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_if.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_right_copy_if.html b/doc/html/trim_right_copy_if.html
new file mode 100644
index 0000000000..932fed0007
--- /dev/null
+++ b/doc/html/trim_right_copy_if.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function trim_right_copy_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_left.html" title="Function template trim_left">
+<link rel="next" href="trim_right_copy.html" title="Function template trim_right_copy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_right_copy_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function trim_right_copy_if</span></h2>
+<p>boost::algorithm::trim_right_copy_if &#8212; Right trim - parametric. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> OutputIteratorT, <span class="bold"><strong>typename</strong></span> RangeT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">OutputIteratorT</span>
+  trim_right_copy_if(OutputIteratorT Output, <span class="bold"><strong>const</strong></span> RangeT &amp; Input,
+                     PredicateT IsSpace);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type">SequenceT</span> trim_right_copy_if(<span class="bold"><strong>const</strong></span> SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356178"></a><h2>Description</h2>
+<p>Remove all trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input range </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+<dt><span class="term">Output</span></dt>
+<dd><p>An output iterator to which the result will be copied </p></dd>
+</dl>
+</div>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ An output iterator pointing just after the last inserted character or a copy of the input<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The second variant of this function provides the strong exception-safety guarantee </p>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_left.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right_copy.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/trim_right_if.html b/doc/html/trim_right_if.html
new file mode 100644
index 0000000000..2f9eab0b09
--- /dev/null
+++ b/doc/html/trim_right_if.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template trim_right_if</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="string_algo/reference.html#id907869" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">
+<link rel="prev" href="trim_right_copy.html" title="Function template trim_right_copy">
+<link rel="next" href="trim_right.html" title="Function template trim_right">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="trim_right_if"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template trim_right_if</span></h2>
+<p>boost::algorithm::trim_right_if &#8212; Right trim - parametric. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> SequenceT, <span class="bold"><strong>typename</strong></span> PredicateT&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> trim_right_if(SequenceT &amp; Input, PredicateT IsSpace);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1356383"></a><h2>Description</h2>
+<p>Remove all trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</p>
+<p></p>
+<div class="variablelist">
+<p class="title"><b>Parameters</b></p>
+<dl>
+<dt><span class="term">Input</span></dt>
+<dd><p>An input sequence </p></dd>
+<dt><span class="term">IsSpace</span></dt>
+<dd><p>An unary predicate identifying spaces </p></dd>
+</dl>
+</div>
+</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 © 2002-2004 Pavol Droba</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trim_right_copy.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="string_algo/reference.html#id907869"><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="trim_right.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/try_mutex.html b/doc/html/try_mutex.html
new file mode 100644
index 0000000000..dd365312f6
--- /dev/null
+++ b/doc/html/try_mutex.html
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class try_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id868118" title="Header &lt;boost/thread/mutex.hpp&gt;">
+<link rel="prev" href="mutex.html" title="Class mutex">
+<link rel="next" href="timed_mutex.html" title="Class timed_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="timed_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="try_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class try_mutex</span></h2>
+<p>boost::try_mutex &#8212; <p>The <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> concept.</p></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"><strong>class</strong></span> try_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_lock;    
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_lock;
+
+  <span class="emphasis"><em>// <a href="try_mutex.html#try_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="try_mutex.html#id1255920-bb">try_mutex</a>();
+  <a href="try_mutex.html#id1114655-bb">~try_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1558883"></a><h2>Description</h2>
+<p>The <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryMutex" title="TryMutex Concept">TryMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="mutex.html" title="Class mutex">mutex</a> and <a href="timed_mutex.html" title="Class timed_mutex">timed_mutex</a>.</p>
+<p>For <a href="threads/concepts.html#threads.concepts.recursive-locking-strategy" title="Recursive Locking Strategy">Recursive</a>
+ locking mechanics, see <a href="recursive_mutex.html" title="Class recursive_mutex">recursive_mutex</a>,
+ <a href="recursive_try_mutex.html" title="Class recursive_try_mutex">recursive_try_mutex</a>, and <a href="recursive_timed_mutex.html" title="Class recursive_timed_mutex">recursive_timed_mutex</a>.
+ </p>
+<p>The <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> class supplies the following typedefs,
+ which <a href="threads/concepts.html#threads.concepts.lock-models" title="Lock Models">model</a>
+ the specified locking strategies:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p>The <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.unspecified-locking-strategy" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="try_mutex.html" title="Class try_mutex">try_mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.mutex-models" title="Mutex Models">mutex models</a>
+ in , <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.sheduling-policies" title="Scheduling Policies">scheduling policy</a>
+ as <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ Programmers should make no assumptions about the order in which
+ waiting threads acquire a lock.</p>
+<div class="refsect2" lang="en">
+<a name="id1559094"></a><h3>
+<a name="try_mutexconstruct-copy-destruct"></a><code class="computeroutput">try_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1255920-bb"></a>try_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1114655-bb"></a>~try_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="try_mutex.html" title="Class try_mutex">try_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id868118"><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="timed_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/try_read_write_mutex.html b/doc/html/try_read_write_mutex.html
new file mode 100644
index 0000000000..e5f5c091d6
--- /dev/null
+++ b/doc/html/try_read_write_mutex.html
@@ -0,0 +1,167 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class try_read_write_mutex</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id693680" title="Header &lt;boost/thread/read_write_mutex.hpp&gt;">
+<link rel="prev" href="read_write_mutex.html" title="Class read_write_mutex">
+<link rel="next" href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="timed_read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="try_read_write_mutex"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class try_read_write_mutex</span></h2>
+<p>boost::try_read_write_mutex &#8212; <p>The <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a> concept.</p></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"><strong>class</strong></span> try_read_write_mutex : <span class="bold"><strong>private</strong></span> boost::noncopyable <span class="emphasis"><em>// Exposition only</em></span>
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_write_lock;    
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_read_write_lock;
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_read_lock;          
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_read_lock;      
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_write_lock;         
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>implementation-defined</em></span> scoped_try_write_lock;     
+
+  <span class="emphasis"><em>// <a href="try_read_write_mutex.html#try_read_write_mutexconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="try_read_write_mutex.html#id1184940-bb">try_read_write_mutex</a>(boost::read_write_scheduling_policy);
+  <a href="try_read_write_mutex.html#id1150477-bb">~try_read_write_mutex</a>();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1562104"></a><h2>Description</h2>
+<p>The <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> class is a model of the
+ <a href="threads/concepts.html#threads.concepts.TryReadWriteMutex" title="TryReadWriteMutex Concept">TryReadWriteMutex</a> concept.
+ It should be used to synchronize access to shared resources using
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking mechanics.</p>
+<p>For classes that model related mutex concepts, see
+ <a href="read_write_mutex.html" title="Class read_write_mutex">read_write_mutex</a> and <a href="timed_read_write_mutex.html" title="Class timed_read_write_mutex">timed_read_write_mutex</a>.</p>
+<p>The <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> class supplies the following typedefs,
+ which <a href="threads/concepts.html#threads.concepts.read-write-lock-models" title="Lock Models">model</a>
+ the specified locking strategies:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="left">Lock Name</th>
+<th align="left">Lock Concept</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">scoped_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedReadWriteLock" title="ScopedReadWriteLock Concept">ScopedReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_read_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryReadWriteLock" title="ScopedTryReadWriteLock Expressions">ScopedTryReadWriteLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_read_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedLock" title="ScopedLock Concept">ScopedLock</a></td>
+</tr>
+<tr>
+<td align="left">scoped_try_write_lock</td>
+<td align="left"><a href="threads/concepts.html#threads.concepts.ScopedTryLock" title="ScopedTryLock Concept">ScopedTryLock</a></td>
+</tr>
+</tbody>
+</table></div>
+<p>The <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> class uses an
+ <a href="threads/concepts.html#threads.concepts.read-write-locking-strategies.unspecified" title="Unspecified Locking Strategy">Unspecified</a>
+ locking strategy, so attempts to recursively lock a <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a>
+ object or attempts to unlock one by threads that don't own a lock on it result in
+ <span class="bold"><strong>undefined behavior</strong></span>.
+ This strategy allows implementations to be as efficient as possible
+ on any given platform. It is, however, recommended that
+ implementations include debugging support to detect misuse when
+ <code class="computeroutput">NDEBUG</code> is not defined.</p>
+<p>Like all
+ <a href="threads/concepts.html#threads.concepts.read-write-mutex-models" title="Mutex Models">read/write mutex models</a>
+ in , <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> has two types of
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies" title="Scheduling Policies">scheduling policies</a>, an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ between threads trying to obtain different types of locks and an
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a>
+ between threads trying to obtain the same type of lock.
+ The <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> class allows the
+ programmer to choose what
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.inter-class" title="Inter-Class Scheduling Policies">inter-class sheduling policy</a>
+ will be used; however, like all read/write mutex models,
+ <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> leaves the
+ <a href="threads/concepts.html#threads.concepts.read-write-scheduling-policies.intra-class" title="Intra-Class Scheduling Policies">intra-class sheduling policy</a> as
+ <a href="threads/concepts.html#threads.concepts.unspecified-scheduling-policy" title="Unspecified Policy">Unspecified</a>.
+ </p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>Self-deadlock is virtually guaranteed if a thread tries to
+ lock the same <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> multiple times
+ unless all locks are read-locks (but see below)</div>
+<div class="refsect2" lang="en">
+<a name="id1562402"></a><h3>
+<a name="try_read_write_mutexconstruct-copy-destruct"></a><code class="computeroutput">try_read_write_mutex</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id1184940-bb"></a>try_read_write_mutex(boost::read_write_scheduling_policy count);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs a <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> object.
+ <br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.
+ </p>
+</li>
+<li>
+<pre class="literallayout"><a name="id1150477-bb"></a>~try_read_write_mutex();</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Destroys a <a href="try_read_write_mutex.html" title="Class try_read_write_mutex">try_read_write_mutex</a> object.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Requires</span></b>:
+
+ <code class="computeroutput">*this</code> is in an unlocked state.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ <span class="bold"><strong>Danger:</strong></span> Destruction of a
+ locked mutex is a serious programming error resulting in undefined
+ behavior such as a program crash.</p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="read_write_mutex.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id693680"><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="timed_read_write_mutex.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/typed_value.html b/doc/html/typed_value.html
new file mode 100644
index 0000000000..6f8f57f02e
--- /dev/null
+++ b/doc/html/typed_value.html
@@ -0,0 +1,121 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template typed_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="id683292.html" title="Class positional_options_description">
+<link rel="next" href="untyped_value.html" title="Class untyped_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id683292.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="untyped_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="typed_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template typed_value</span></h2>
+<p>boost::program_options::typed_value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> typed_value
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::value_semantic_codecvt_helper&lt; charT &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="typed_value.html#typed_valueconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="typed_value.html#id1113060-bb">typed_value</a>(T *);
+
+  <span class="emphasis"><em>// <a href="typed_value.html#id934494-bb">public member functions</a></em></span>
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id934499-bb">default_value</a>(<span class="bold"><strong>const</strong></span> T &amp;) ;
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id797160-bb">default_value</a>(<span class="bold"><strong>const</strong></span> T &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id1008859-bb">notifier</a>(function1&lt; <span class="bold"><strong>void</strong></span>, <span class="bold"><strong>const</strong></span> T &amp; &gt;) ;
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id760792-bb">composing</a>() ;
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id1112969-bb">multitoken</a>() ;
+  <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a href="typed_value.html#id658034-bb">zero_tokens</a>() ;
+  <span class="type">std::string</span> <a href="typed_value.html#id798654-bb">name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="typed_value.html#id998228-bb">is_composing</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a href="typed_value.html#id998241-bb">min_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a href="typed_value.html#id998254-bb">max_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="typed_value.html#id908506-bb">xparse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="typed_value.html#id1104904-bb">apply_default</a>(boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="typed_value.html#id1104938-bb">notify</a>(<span class="bold"><strong>const</strong></span> boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1257056"></a><h2>Description</h2>
+<p>Class which handles value of a specific type. </p>
+<div class="refsect2" lang="en">
+<a name="id1257063"></a><h3>
+<a name="typed_valueconstruct-copy-destruct"></a><code class="computeroutput">typed_value</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id1113060-bb"></a>typed_value(T * store_to);</pre>
+<p>Ctor. The 'store_to' parameter tells where to store the value when it's known. The parameter can be NULL. </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1257100"></a><h3>
+<a name="id934494-bb"></a><code class="computeroutput">typed_value</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id934499-bb"></a>default_value(<span class="bold"><strong>const</strong></span> T &amp; v) ;</pre>
+<p>Specifies default value, which will be used if none is explicitly specified. The type 'T' should provide operator&lt;&lt; for ostream. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id797160-bb"></a>default_value(<span class="bold"><strong>const</strong></span> T &amp; v, <span class="bold"><strong>const</strong></span> std::string &amp; textual) ;</pre>
+<p>Specifies default value, which will be used if none is explicitly specified. Unlike the above overload, the type 'T' need not provide operator&lt;&lt; for ostream, but textual representation of default value must be provided by the user. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id1008859-bb"></a>notifier(function1&lt; <span class="bold"><strong>void</strong></span>, <span class="bold"><strong>const</strong></span> T &amp; &gt; f) ;</pre>
+<p>Specifies a function to be called when the final value is determined. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id760792-bb"></a>composing() ;</pre>
+<p>Specifies that the value is composing. See the 'is_composing' method for explanation. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id1112969-bb"></a>multitoken() ;</pre>
+<p>Specifies that the value can span multiple tokens. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a> *</span> <a name="id658034-bb"></a>zero_tokens() ;</pre></li>
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id798654-bb"></a>name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id998228-bb"></a>is_composing() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a name="id998241-bb"></a>min_tokens() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a name="id998254-bb"></a>max_tokens() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id908506-bb"></a>xparse(boost::any &amp; value_store,
+            <span class="bold"><strong>const</strong></span> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp; new_tokens) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Creates an instance of the 'validator' class and calls its operator() to perform athe ctual conversion. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id1104904-bb"></a>apply_default(boost::any &amp; value_store) <span class="bold"><strong>const</strong></span>;</pre>
+<p>If default value was specified via previous call to 'default_value', stores that value into 'value_store'. Returns true if default value was stored. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1104938-bb"></a>notify(<span class="bold"><strong>const</strong></span> boost::any &amp; value_store) <span class="bold"><strong>const</strong></span>;</pre>
+<p>If an address of variable to store value was specified when creating *this, stores the value there. Otherwise, does nothing. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id683292.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="untyped_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/tz_db_base.html b/doc/html/tz_db_base.html
new file mode 100644
index 0000000000..99c2e654ed
--- /dev/null
+++ b/doc/html/tz_db_base.html
@@ -0,0 +1,141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template tz_db_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1034888" title="Header &lt;boost/date_time/tz_db_base.hpp&gt;">
+<link rel="prev" href="bad_field_count.html" title="Struct bad_field_count">
+<link rel="next" href="wrapping_int.html" title="Class template wrapping_int">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_field_count.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="wrapping_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="tz_db_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template tz_db_base</span></h2>
+<p>boost::date_time::tz_db_base &#8212; Creates a database of time_zones from csv datafile. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_zone_type, <span class="bold"><strong>typename</strong></span> rule_type&gt;
+<span class="bold"><strong>class</strong></span> tz_db_base {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>char</strong></span>                                         charT;                 
+  <span class="bold"><strong>typedef</strong></span> time_zone_type::base_type                    time_zone_base_type;   
+  <span class="bold"><strong>typedef</strong></span> time_zone_type::time_duration_type           time_duration_type;    
+  <span class="bold"><strong>typedef</strong></span> <a href="time_zone_names_base.html" title="Class template time_zone_names_base">time_zone_names_base</a>&lt; charT &gt;                time_zone_names;       
+  <span class="bold"><strong>typedef</strong></span> dst_adjustment_offsets&lt; time_duration_type &gt; dst_adjustment_offsets;
+  <span class="bold"><strong>typedef</strong></span> std::basic_string&lt; charT &gt;                   string_type;           
+
+  <span class="emphasis"><em>// <a href="tz_db_base.html#tz_db_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="tz_db_base.html#id792972-bb">tz_db_base</a>();
+
+  <span class="emphasis"><em>// <a href="tz_db_base.html#id1104197-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="tz_db_base.html#id1104203-bb">load_from_file</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="tz_db_base.html#id934174-bb">add_record</a>(<span class="bold"><strong>const</strong></span> string_type &amp;,
+                  boost::shared_ptr&lt; time_zone_base_type &gt;) ;
+  <span class="type">boost::shared_ptr&lt; time_zone_base_type &gt;</span>
+  <a href="tz_db_base.html#id837833-bb">time_zone_from_region</a>(<span class="bold"><strong>const</strong></span> string_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">std::vector&lt; std::string &gt;</span> <a href="tz_db_base.html#id975989-bb">region_list</a>() <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="tz_db_base.html#id902329-bb">private member functions</a></em></span>
+  <span class="type">rule_type *</span> <a href="tz_db_base.html#id1102820-bb">parse_rules</a>(<span class="bold"><strong>const</strong></span> string_type &amp;, <span class="bold"><strong>const</strong></span> string_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">week_num</span> <a href="tz_db_base.html#id966469-bb">get_week_num</a>(<span class="bold"><strong>int</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="tz_db_base.html#id1107456-bb">split_rule_spec</a>(<span class="bold"><strong>int</strong></span> &amp;, <span class="bold"><strong>int</strong></span> &amp;, <span class="bold"><strong>int</strong></span> &amp;, string_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="tz_db_base.html#id802746-bb">parse_string</a>(string_type &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1147524"></a><h2>Description</h2>
+<p>The csv file containing the zone_specs used by the tz_db_base is intended to be customized by the library user. When customizing this file (or creating your own) the file must follow a specific format.</p>
+<p>This first line is expected to contain column headings and is therefore not processed by the tz_db_base.</p>
+<p>Each record (line) must have eleven fields. Some of those fields can be empty. Every field (even empty ones) must be enclosed in double-quotes. Ex: </p>
+<pre class="programlisting"> "America/Phoenix" &lt;- string enclosed in quotes
+ "" &lt;- empty field
+</pre>
+<p>Some fields represent a length of time. The format of these fields must be: </p>
+<pre class="programlisting"> "{+|-}hh:mm[:ss]" &lt;- length-of-time format
+</pre>
+<p>Where the plus or minus is mandatory and the seconds are optional.</p>
+<p>Since some time zones do not use daylight savings it is not always necessary for every field in a zone_spec to contain a value. All zone_specs must have at least ID and GMT offset. Zones that use daylight savings must have all fields filled except: STD ABBR, STD NAME, DST NAME. You should take note that DST ABBR is mandatory for zones that use daylight savings (see field descriptions for further details).</p>
+<p>******* Fields and their description/details *********</p>
+<p>ID: Contains the identifying string for the zone_spec. Any string will do as long as it's unique. No two ID's can be the same.</p>
+<p>STD ABBR: STD NAME: DST ABBR: DST NAME: These four are all the names and abbreviations used by the time zone being described. While any string will do in these fields, care should be taken. These fields hold the strings that will be used in the output of many of the local_time classes. Ex: </p>
+<pre class="programlisting"> time_zone nyc = tz_db.time_zone_from_region("America/New_York");
+ local_time ny_time(date(2004, Aug, 30), IS_DST, nyc);
+ cout &lt;&lt; ny_time.to_long_string() &lt;&lt; endl;
+ // 2004-Aug-30 00:00:00 Eastern Daylight Time
+ cout &lt;&lt; ny_time.to_short_string() &lt;&lt; endl;
+ // 2004-Aug-30 00:00:00 EDT
+</pre>
+<p>NOTE: The exact format/function names may vary - see local_time documentation for further details.</p>
+<p>GMT offset: This is the number of hours added to utc to get the local time before any daylight savings adjustments are made. Some examples are: America/New_York offset -5 hours, &amp; Africa/Cairo offset +2 hours. The format must follow the length-of-time format described above.</p>
+<p>DST adjustment: The amount of time added to gmt_offset when daylight savings is in effect. The format must follow the length-of-time format described above.</p>
+<p>DST Start Date rule: This is a specially formatted string that describes the day of year in which the transition take place. It holds three fields of it's own, separated by semicolons. The first field indicates the "nth" weekday of the month. The possible values are: 1 (first), 2 (second), 3 (third), 4 (fourth), 5 (fifth), and -1 (last). The second field indicates the day-of-week from 0-6 (Sun=0). The third field indicates the month from 1-12 (Jan=1).</p>
+<p>Examples are: "-1;5;9"="Last Friday of September", "2;1;3"="Second Monday of March"</p>
+<p>Start time: Start time is the number of hours past midnight, on the day of the start transition, the transition takes place. More simply put, the time of day the transition is made (in 24 hours format). The format must follow the length-of-time format described above with the exception that it must always be positive.</p>
+<p>DST End date rule: See DST Start date rule. The difference here is this is the day daylight savings ends (transition to STD).</p>
+<p>End time: Same as Start time. </p>
+<div class="refsect2" lang="en">
+<a name="id1147638"></a><h3>
+<a name="tz_db_baseconstruct-copy-destruct"></a><code class="computeroutput">tz_db_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id792972-bb"></a>tz_db_base();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1147667"></a><h3>
+<a name="id1104197-bb"></a><code class="computeroutput">tz_db_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1104203-bb"></a>load_from_file(<span class="bold"><strong>const</strong></span> std::string &amp; pathspec) ;</pre>
+<p>May throw data_not_accessible, or bad_field_count exceptions </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id934174-bb"></a>add_record(<span class="bold"><strong>const</strong></span> string_type &amp; id,
+                boost::shared_ptr&lt; time_zone_base_type &gt; tz) ;</pre>
+<p>Takes an id string in the form of "America/Phoenix", and a time_zone object for that region. The id string must be a unique name that does not already exist in the database. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">boost::shared_ptr&lt; time_zone_base_type &gt;</span>
+<a name="id837833-bb"></a>time_zone_from_region(<span class="bold"><strong>const</strong></span> string_type &amp; region) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns a time_zone object built from the specs for the given region. If region does not exist a local_time::record_not_found exception will be thrown </p>
+</li>
+<li><pre class="literallayout"><span class="type">std::vector&lt; std::string &gt;</span> <a name="id975989-bb"></a>region_list() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1147807"></a><h3>
+<a name="id902329-bb"></a><code class="computeroutput">tz_db_base</code> private member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">rule_type *</span> <a name="id1102820-bb"></a>parse_rules(<span class="bold"><strong>const</strong></span> string_type &amp; sr, <span class="bold"><strong>const</strong></span> string_type &amp; er) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">week_num</span> <a name="id966469-bb"></a>get_week_num(<span class="bold"><strong>int</strong></span> nth) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1107456-bb"></a>split_rule_spec(<span class="bold"><strong>int</strong></span> &amp; nth, <span class="bold"><strong>int</strong></span> &amp; d, <span class="bold"><strong>int</strong></span> &amp; m, string_type rule) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id802746-bb"></a>parse_string(string_type &amp; s) ;</pre>
+<p>Take a line from the csv, turn it into a time_zone_type, and add it to the map. Zone_specs in csv file are expected to have eleven fields that describe the time zone. Returns true if zone_spec successfully added to database </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bad_field_count.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1034888"><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="wrapping_int.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/uk_dst_trait.html b/doc/html/uk_dst_trait.html
new file mode 100644
index 0000000000..77af947219
--- /dev/null
+++ b/doc/html/uk_dst_trait.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template uk_dst_trait</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941196" title="Header &lt;boost/date_time/local_timezone_defs.hpp&gt;">
+<link rel="prev" href="eu_dst_trait.html" title="Struct template eu_dst_trait">
+<link rel="next" href="acst_dst_trait.html" title="Struct template acst_dst_trait">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="eu_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="acst_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="uk_dst_trait"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template uk_dst_trait</span></h2>
+<p>boost::date_time::uk_dst_trait &#8212; Alternative dst traits for some parts of the United Kingdom. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>struct</strong></span> uk_dst_trait : <span class="bold"><strong>public</strong></span> boost::date_time::eu_dst_trait&lt; date_type &gt; {
+
+  <span class="emphasis"><em>// <a href="uk_dst_trait.html#id803426-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="uk_dst_trait.html#id803431-bb">dst_start_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="uk_dst_trait.html#id863659-bb">dst_end_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="uk_dst_trait.html#id931303-bb">dst_shift_length_minutes</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1110000"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1110003"></a><h3>
+<a name="id803426-bb"></a><code class="computeroutput">uk_dst_trait</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id803431-bb"></a>dst_start_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id863659-bb"></a>dst_end_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id931303-bb"></a>dst_shift_length_minutes() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="eu_dst_trait.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="acst_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/unknown_option.html b/doc/html/unknown_option.html
new file mode 100644
index 0000000000..f9a7edc270
--- /dev/null
+++ b/doc/html/unknown_option.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class unknown_option</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="id977493.html" title="Class too_many_positional_options_error">
+<link rel="next" href="validation_error.html" title="Class validation_error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id977493.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="validation_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="unknown_option"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class unknown_option</span></h2>
+<p>boost::program_options::unknown_option &#8212; </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"><strong>class</strong></span> unknown_option : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="unknown_option.html#unknown_optionconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="unknown_option.html#id1102165-bb">unknown_option</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+
+  <span class="emphasis"><em>// <a href="unknown_option.html#id1002219-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1251520"></a><h2>Description</h2>
+<p>Class thrown when option name is not recognized. </p>
+<div class="refsect2" lang="en">
+<a name="id1251527"></a><h3>
+<a name="unknown_optionconstruct-copy-destruct"></a><code class="computeroutput">unknown_option</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1102165-bb"></a>unknown_option(<span class="bold"><strong>const</strong></span> std::string &amp; name);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251567"></a><h3>
+<a name="id1002219-bb"></a><code class="computeroutput">unknown_option</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id977493.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="validation_error.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/untyped_value.html b/doc/html/untyped_value.html
new file mode 100644
index 0000000000..1e6a3ebdd4
--- /dev/null
+++ b/doc/html/untyped_value.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class untyped_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="typed_value.html" title="Class template typed_value">
+<link rel="next" href="value_semantic.html" title="Class value_semantic">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="typed_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="value_semantic.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="untyped_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class untyped_value</span></h2>
+<p>boost::program_options::untyped_value &#8212; </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"><strong>class</strong></span> untyped_value
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::value_semantic_codecvt_helper&lt; charT &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="untyped_value.html#untyped_valueconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="untyped_value.html#id663640-bb">untyped_value</a>(<span class="bold"><strong>bool</strong></span> = false);
+
+  <span class="emphasis"><em>// <a href="untyped_value.html#id661436-bb">public member functions</a></em></span>
+  <span class="type">std::string</span> <a href="untyped_value.html#id661441-bb">name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a href="untyped_value.html#id996504-bb">min_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a href="untyped_value.html#id762944-bb">max_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="untyped_value.html#id926730-bb">is_composing</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="untyped_value.html#id926743-bb">xparse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="untyped_value.html#id765435-bb">apply_default</a>(boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="untyped_value.html#id1008307-bb">notify</a>(<span class="bold"><strong>const</strong></span> boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1257742"></a><h2>Description</h2>
+<p>Class which specifies a simple handling of a value: the value will have string type and only one token is allowed. </p>
+<div class="refsect2" lang="en">
+<a name="id1257750"></a><h3>
+<a name="untyped_valueconstruct-copy-destruct"></a><code class="computeroutput">untyped_value</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id663640-bb"></a>untyped_value(<span class="bold"><strong>bool</strong></span> zero_tokens = false);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1257790"></a><h3>
+<a name="id661436-bb"></a><code class="computeroutput">untyped_value</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">std::string</span> <a name="id661441-bb"></a>name() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a name="id996504-bb"></a>min_tokens() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span></span> <a name="id762944-bb"></a>max_tokens() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id926730-bb"></a>is_composing() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id926743-bb"></a>xparse(boost::any &amp; value_store,
+            <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; new_tokens) <span class="bold"><strong>const</strong></span>;</pre>
+<p>If 'value_store' is already initialized, or new_tokens has more than one elements, throws. Otherwise, assigns the first string from 'new_tokens' to 'value_store', without any modifications. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id765435-bb"></a>apply_default(boost::any &amp; ) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Does nothing. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1008307-bb"></a>notify(<span class="bold"><strong>const</strong></span> boost::any &amp; ) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Does nothing. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="typed_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="value_semantic.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/unwrap_recursive_wrapper.html b/doc/html/unwrap_recursive_wrapper.html
new file mode 100644
index 0000000000..1d14424dc7
--- /dev/null
+++ b/doc/html/unwrap_recursive_wrapper.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template unwrap_recursive_wrapper</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1311990" title="Header &lt;boost/variant/recursive_wrapper.hpp&gt;">
+<link rel="prev" href="is_recursive_wrapper.html" title="Class template is_recursive_wrapper">
+<link rel="next" href="apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="apply_visitor_delayed_t.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="unwrap_recursive_wrapper"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template unwrap_recursive_wrapper</span></h2>
+<p>boost::unwrap_recursive_wrapper &#8212; <p>Unwraps the specified argument if given a specialization of
+ <code class="computeroutput"><a href="recursive_wrapper.html" title="Class template recursive_wrapper">recursive_wrapper</a></code>.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> unwrap_recursive_wrapper {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> type;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1668048"></a><h2>Description</h2>
+<p><code class="computeroutput">type</code> is equivalent to <code class="computeroutput">T::type</code> if
+ <code class="computeroutput">T</code> is a specialization of
+ <code class="computeroutput"><a href="recursive_wrapper.html" title="Class template recursive_wrapper">recursive_wrapper</a></code>. Otherwise,
+ <code class="computeroutput">type</code> is equivalent to <code class="computeroutput">T</code>.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_recursive_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1311990"><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="apply_visitor_delayed_t.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/unwrap_reference.html b/doc/html/unwrap_reference.html
new file mode 100644
index 0000000000..8f3a1ab2d9
--- /dev/null
+++ b/doc/html/unwrap_reference.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template unwrap_reference</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="ref/reference.html#header.boost.ref.hpp" title="Header &lt;boost/ref.hpp&gt;">
+<link rel="prev" href="is_reference_wrapper.html" title="Class template is_reference_wrapper">
+<link rel="next" href="ref/ack.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reference_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="ref/ack.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="unwrap_reference"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template unwrap_reference</span></h2>
+<p>boost::unwrap_reference &#8212; Find the type in a <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>class</strong></span> unwrap_reference {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> type;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1279787"></a><h2>Description</h2>
+<p>The typedef <code class="computeroutput">type</code> is
+ <code class="computeroutput">T::type</code> if
+ <code class="computeroutput">T</code> is a
+ <code class="computeroutput"><a href="reference_wrapper.html" title="Class template reference_wrapper">reference_wrapper</a></code>,
+ <code class="computeroutput">T</code> otherwise.</p>
+</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 © 1999, 2000 Jaakko Järvi<br>Copyright © 2001, 2002 Peter Dimov<br>Copyright © 2002 David Abrahams</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reference_wrapper.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="ref/reference.html#header.boost.ref.hpp"><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="ref/ack.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/us_dst_rules.html b/doc/html/us_dst_rules.html
new file mode 100644
index 0000000000..4cb7ac6b98
--- /dev/null
+++ b/doc/html/us_dst_rules.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template us_dst_rules</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id866029" title="Header &lt;boost/date_time/dst_rules.hpp&gt;">
+<link rel="prev" href="dst_calc_engine.html" title="Class template dst_calc_engine">
+<link rel="next" href="null_dst_rules.html" title="Class template null_dst_rules">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_calc_engine.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="null_dst_rules.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="us_dst_rules"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template us_dst_rules</span></h2>
+<p>boost::date_time::us_dst_rules &#8212; Depricated: Class to calculate dst boundaries for US time zones. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type_, <span class="bold"><strong>typename</strong></span> time_duration_type_,
+         <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> dst_start_offset_minutes = ,
+         <span class="bold"><strong>short</strong></span> dst_length_minutes = &gt;
+<span class="bold"><strong>class</strong></span> us_dst_rules {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> time_duration_type_                             time_duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type_                                      date_type;         
+  <span class="bold"><strong>typedef</strong></span> date_type::year_type                            year_type;         
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type                        calendar_type;     
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt;      lkday;             
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">date_time::first_kday_of_month</a>&lt; date_type &gt;     fkday;             
+  <span class="bold"><strong>typedef</strong></span> <a href="dst_calculator.html" title="Class template dst_calculator">dst_calculator</a>&lt; date_type, time_duration_type &gt; dstcalc;           
+
+  <span class="emphasis"><em>// <a href="us_dst_rules.html#id973833-bb">public static functions</a></em></span>
+  <span class="type">time_is_dst_result</span>
+  <a href="us_dst_rules.html#id1033345-bb">local_is_dst</a>(<span class="bold"><strong>const</strong></span> date_type &amp;, <span class="bold"><strong>const</strong></span> time_duration_type &amp;) ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="us_dst_rules.html#id899244-bb">is_dst_boundary_day</a>(date_type) ;
+  <span class="type">date_type</span> <a href="us_dst_rules.html#id899268-bb">local_dst_start_day</a>(year_type) ;
+  <span class="type">date_type</span> <a href="us_dst_rules.html#id928030-bb">local_dst_end_day</a>(year_type) ;
+  <span class="type">time_duration_type</span> <a href="us_dst_rules.html#id1031655-bb">dst_offset</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1082038"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1082042"></a><h3>
+<a name="id973833-bb"></a><code class="computeroutput">us_dst_rules</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">time_is_dst_result</span>
+<a name="id1033345-bb"></a>local_is_dst(<span class="bold"><strong>const</strong></span> date_type &amp; d, <span class="bold"><strong>const</strong></span> time_duration_type &amp; td) ;</pre>
+<p>Determines if the time is really in DST or not. Also checks for invalid and ambiguous.
+</p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id899244-bb"></a>is_dst_boundary_day(date_type d) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id899268-bb"></a>local_dst_start_day(year_type year) ;</pre></li>
+<li><pre class="literallayout"><span class="type">date_type</span> <a name="id928030-bb"></a>local_dst_end_day(year_type year) ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id1031655-bb"></a>dst_offset() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dst_calc_engine.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id866029"><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="null_dst_rules.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/us_dst_trait.html b/doc/html/us_dst_trait.html
new file mode 100644
index 0000000000..bccdb9fc3e
--- /dev/null
+++ b/doc/html/us_dst_trait.html
@@ -0,0 +1,98 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template us_dst_trait</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id941196" title="Header &lt;boost/date_time/local_timezone_defs.hpp&gt;">
+<link rel="prev" href="local_adjustor.html" title="Class template local_adjustor">
+<link rel="next" href="eu_dst_trait.html" title="Struct template eu_dst_trait">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="eu_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="us_dst_trait"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template us_dst_trait</span></h2>
+<p>boost::date_time::us_dst_trait &#8212; Specification for daylight savings start rules in US. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>struct</strong></span> us_dst_trait {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::day_of_week_type                 day_of_week_type;  
+  <span class="bold"><strong>typedef</strong></span> date_type::month_type                       month_type;        
+  <span class="bold"><strong>typedef</strong></span> <a href="first_kday_of_month.html" title="Class template first_kday_of_month">date_time::first_kday_of_month</a>&lt; date_type &gt; start_rule_functor;
+  <span class="bold"><strong>typedef</strong></span> <a href="last_kday_of_month.html" title="Class template last_kday_of_month">date_time::last_kday_of_month</a>&lt; date_type &gt;  end_rule_functor;  
+
+  <span class="emphasis"><em>// <a href="us_dst_trait.html#id1033079-bb">public static functions</a></em></span>
+  <span class="type">day_of_week_type</span> <a href="us_dst_trait.html#id1033084-bb">start_day</a>() ;
+  <span class="type">month_type</span> <a href="us_dst_trait.html#id969277-bb">start_month</a>() ;
+  <span class="type">day_of_week_type</span> <a href="us_dst_trait.html#id929365-bb">end_day</a>() ;
+  <span class="type">month_type</span> <a href="us_dst_trait.html#id834067-bb">end_month</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="us_dst_trait.html#id997007-bb">dst_start_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="us_dst_trait.html#id997020-bb">dst_end_offset_minutes</a>() ;
+  <span class="type"><span class="bold"><strong>int</strong></span></span> <a href="us_dst_trait.html#id1077178-bb">dst_shift_length_minutes</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1109367"></a><h2>Description</h2>
+<p>This class is used to configure dst_calc_engine template typically as follows: </p>
+<pre class="programlisting"> using namespace boost::gregorian;
+ using namespace boost::posix_time;
+ typedef us_dst_trait&lt;date&gt; us_dst_traits;
+ typedef boost::date_time::dst_calc_engine&lt;date, time_duration,
+ us_dst_traits&gt;
+ us_dst_calc;
+ //calculate the 2002 transition day of USA April 7 2002
+ date dst_start = us_dst_calc::local_dst_start_day(2002);
+
+ //calculate the 2002 transition day of USA Oct 27 2002
+ date dst_end = us_dst_calc::local_dst_end_day(2002);
+
+ //check if a local time is in dst or not -- posible answers
+ //are yes, no, invalid time label, ambiguous
+ ptime t(...some time...);
+ if (us_dst::local_is_dst(t.date(), t.time_of_day())
+ == boost::date_time::is_not_in_dst)
+ {
+
+ }
+</pre>
+<p>This generates a type suitable for the calculation of dst transitions for the United States. Of course other templates can be used for other locales. </p>
+<div class="refsect2" lang="en">
+<a name="id1109384"></a><h3>
+<a name="id1033079-bb"></a><code class="computeroutput">us_dst_trait</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id1033084-bb"></a>start_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id969277-bb"></a>start_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type">day_of_week_type</span> <a name="id929365-bb"></a>end_day() ;</pre></li>
+<li><pre class="literallayout"><span class="type">month_type</span> <a name="id834067-bb"></a>end_month() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id997007-bb"></a>dst_start_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id997020-bb"></a>dst_end_offset_minutes() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="id1077178-bb"></a>dst_shift_length_minutes() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="local_adjustor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id941196"><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="eu_dst_trait.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/utc_adjustment.html b/doc/html/utc_adjustment.html
new file mode 100644
index 0000000000..296d09af54
--- /dev/null
+++ b/doc/html/utc_adjustment.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template utc_adjustment</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1045289" title="Header &lt;boost/date_time/local_time_adjustor.hpp&gt;">
+<link rel="prev" href="iso_extended_format.html" title="Class template iso_extended_format">
+<link rel="next" href="id1075450.html" title="Class template dynamic_local_time_adjustor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_extended_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="id1075450.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="utc_adjustment"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template utc_adjustment</span></h2>
+<p>boost::date_time::utc_adjustment &#8212; Provides a base offset adjustment from utc. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> time_duration_type, <span class="bold"><strong>short</strong></span> hours, <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>short</strong></span> minutes = &gt;
+<span class="bold"><strong>class</strong></span> utc_adjustment {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="utc_adjustment.html#id930982-bb">public static functions</a></em></span>
+  <span class="type">time_duration_type</span> <a href="utc_adjustment.html#id996174-bb">local_to_utc_base_offset</a>() ;
+  <span class="type">time_duration_type</span> <a href="utc_adjustment.html#id1110897-bb">utc_to_local_base_offset</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1108314"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1108318"></a><h3>
+<a name="id930982-bb"></a><code class="computeroutput">utc_adjustment</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id996174-bb"></a>local_to_utc_base_offset() ;</pre></li>
+<li><pre class="literallayout"><span class="type">time_duration_type</span> <a name="id1110897-bb"></a>utc_to_local_base_offset() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iso_extended_format.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1045289"><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="id1075450.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/validation_error.html b/doc/html/validation_error.html
new file mode 100644
index 0000000000..92149ec034
--- /dev/null
+++ b/doc/html/validation_error.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class validation_error</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id696710" title="Header &lt;boost/program_options/errors.hpp&gt;">
+<link rel="prev" href="unknown_option.html" title="Class unknown_option">
+<link rel="next" href="basic_option.html" title="Class template basic_option">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="unknown_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="basic_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="validation_error"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class validation_error</span></h2>
+<p>boost::program_options::validation_error &#8212; </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"><strong>class</strong></span> validation_error : <span class="bold"><strong>public</strong></span> boost::program_options::error {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="validation_error.html#validation_errorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="validation_error.html#id655362-bb">validation_error</a>(<span class="bold"><strong>const</strong></span> std::string &amp;);
+  <a href="validation_error.html#id687727-bb">~validation_error</a>();
+
+  <span class="emphasis"><em>// <a href="validation_error.html#id1076230-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="validation_error.html#id964601-bb">set_option_name</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) ;
+
+  <span class="emphasis"><em>// <a href="validation_error.html#id687730-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a href="validation_error.html#id826784-bb">what</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1251729"></a><h2>Description</h2>
+<p>Class thrown when value of option is incorrect. </p>
+<div class="refsect2" lang="en">
+<a name="id1251736"></a><h3>
+<a name="validation_errorconstruct-copy-destruct"></a><code class="computeroutput">validation_error</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id655362-bb"></a>validation_error(<span class="bold"><strong>const</strong></span> std::string &amp; what);</pre></li>
+<li><pre class="literallayout"><a name="id687727-bb"></a>~validation_error();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251790"></a><h3>
+<a name="id1076230-bb"></a><code class="computeroutput">validation_error</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id964601-bb"></a>set_option_name(<span class="bold"><strong>const</strong></span> std::string &amp; option) ;</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1251835"></a><h3>
+<a name="id687730-bb"></a><code class="computeroutput">validation_error</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id826784-bb"></a>what() <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="unknown_option.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id696710"><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="basic_option.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/value.html b/doc/html/value.html
new file mode 100644
index 0000000000..5fd4556de8
--- /dev/null
+++ b/doc/html/value.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="id1142955-bb.html" title="Class value_semantic_codecvt_helper&lt;wchar_t&gt;">
+<link rel="next" href="wvalue.html" title="Function wvalue">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1142955-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="wvalue.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function value</span></h2>
+<p>boost::program_options::value &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; T &gt; *</span> value();
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; T &gt; *</span> value(T * v);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276708"></a><h2>Description</h2>
+<p>Creates a typed_value&lt;T&gt; instance. This function is the primary method to create value_semantic instance for a specific type, which can later be passed to 'option_description' constructor. The second overload is used when it's additionally desired to store the value of option into program variable. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id1142955-bb.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="wvalue.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/value_semantic.html b/doc/html/value_semantic.html
new file mode 100644
index 0000000000..9abb731a9a
--- /dev/null
+++ b/doc/html/value_semantic.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class value_semantic</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="untyped_value.html" title="Class untyped_value">
+<link rel="next" href="id1140631.html" title="Class template value_semantic_codecvt_helper">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="untyped_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id1140631.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="value_semantic"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class value_semantic</span></h2>
+<p>boost::program_options::value_semantic &#8212; </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"><strong>class</strong></span> value_semantic {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="value_semantic.html#value_semanticconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="value_semantic.html#id1140627-bb">~value_semantic</a>();
+
+  <span class="emphasis"><em>// <a href="value_semantic.html#id1006620-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="value_semantic.html#id1006625-bb">name</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>unsigned</strong></span></span> <a href="value_semantic.html#id905108-bb">min_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>unsigned</strong></span></span> <a href="value_semantic.html#id1142489-bb">max_tokens</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="value_semantic.html#id1142512-bb">is_composing</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+  <a href="value_semantic.html#id1142536-bb">parse</a>(boost::any &amp;, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp;, <span class="bold"><strong>bool</strong></span>) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a href="value_semantic.html#id656179-bb">apply_default</a>(boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a href="value_semantic.html#id964753-bb">notify</a>(<span class="bold"><strong>const</strong></span> boost::any &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1258269"></a><h2>Description</h2>
+<p>Class which specifies how the option's value is to be parsed and converted into C++ types. </p>
+<div class="refsect2" lang="en">
+<a name="id1258276"></a><h3>
+<a name="value_semanticconstruct-copy-destruct"></a><code class="computeroutput">value_semantic</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1140627-bb"></a>~value_semantic();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1275786"></a><h3>
+<a name="id1006620-bb"></a><code class="computeroutput">value_semantic</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id1006625-bb"></a>name() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns the name of the option. The name is only meaningful for automatic help message. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>unsigned</strong></span></span> <a name="id905108-bb"></a>min_tokens() <span class="bold"><strong>const</strong></span>;</pre>
+<p>The minimum number of tokens for this option that should be present on the command line. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>unsigned</strong></span></span> <a name="id1142489-bb"></a>max_tokens() <span class="bold"><strong>const</strong></span>;</pre>
+<p>The maximum number of tokens for this option that should be present on the command line. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id1142512-bb"></a>is_composing() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns true if values from different sources should be composed. Otherwise, value from the first source is used and values from other sources are discarded. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span>
+<a name="id1142536-bb"></a>parse(boost::any &amp; value_store, <span class="bold"><strong>const</strong></span> std::vector&lt; std::string &gt; &amp; new_tokens,
+      <span class="bold"><strong>bool</strong></span> utf8) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Parses a group of tokens that specify a value of option. Stores the result in 'value_store', using whatever representation is desired. May be be called several times if value of the same option is specified more than once. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>bool</strong></span></span> <a name="id656179-bb"></a>apply_default(boost::any &amp; value_store) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Called to assign default value to 'value_store'. Returns true if default value is assigned, and false if no default value exists. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> <span class="bold"><strong>void</strong></span></span> <a name="id964753-bb"></a>notify(<span class="bold"><strong>const</strong></span> boost::any &amp; value_store) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Called when final value of an option is determined. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="untyped_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="id1140631.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/var_string_to_int.html b/doc/html/var_string_to_int.html
new file mode 100644
index 0000000000..6429132498
--- /dev/null
+++ b/doc/html/var_string_to_int.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template var_string_to_int</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1104639" title="Header &lt;boost/date_time/format_date_parser.hpp&gt;">
+<link rel="prev" href="fixed_string_to_int.html" title="Function template fixed_string_to_int">
+<link rel="next" href="gregorian_calendar_base.html" title="Class template gregorian_calendar_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="fixed_string_to_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="gregorian_calendar_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="var_string_to_int"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template var_string_to_int</span></h2>
+<p>boost::date_time::var_string_to_int &#8212; Helper function for parsing varied length strings into integers. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type, <span class="bold"><strong>typename</strong></span> charT&gt;
+  <span class="type">int_type</span> var_string_to_int(std::istreambuf_iterator&lt; charT &gt; &amp; itr,
+                             std::istreambuf_iterator&lt; charT &gt; &amp; stream_end,
+                             <span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>int</strong></span> max_length);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1102500"></a><h2>Description</h2>
+<p>Will consume 'max_length' characters from stream only if those characters are digits. Returns '-1' if no number can be parsed. Will not parse a number preceeded by a '+' or '-'. </p>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="fixed_string_to_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1104639"><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="gregorian_calendar_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variable_value.html b/doc/html/variable_value.html
new file mode 100644
index 0000000000..be41428efe
--- /dev/null
+++ b/doc/html/variable_value.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class variable_value</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="abstract_variables_map.html" title="Class abstract_variables_map">
+<link rel="next" href="variables_map.html" title="Class variables_map">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="abstract_variables_map.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="variables_map.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="variable_value"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class variable_value</span></h2>
+<p>boost::program_options::variable_value &#8212; </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"><strong>class</strong></span> variable_value {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="variable_value.html#variable_valueconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="variable_value.html#id1075271-bb">variable_value</a>();
+  <a href="variable_value.html#id1075273-bb">variable_value</a>(<span class="bold"><strong>const</strong></span> boost::any &amp;, <span class="bold"><strong>bool</strong></span>);
+
+  <span class="emphasis"><em>// <a href="variable_value.html#id654389-bb">public member functions</a></em></span>
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>const</strong></span> T &amp;</span> <a href="variable_value.html#id654395-bb">as</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">T &amp;</span> <a href="variable_value.html#id758174-bb">as</a>() ;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="variable_value.html#id759876-bb">empty</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="variable_value.html#id1002528-bb">defaulted</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>const</strong></span> boost::any &amp;</span> <a href="variable_value.html#id755316-bb">value</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">boost::any &amp;</span> <a href="variable_value.html#id729135-bb">value</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1277763"></a><h2>Description</h2>
+<p>Class holding value of option. Contains details about how the value is set and allows to conveniently obtain the value. </p>
+<div class="refsect2" lang="en">
+<a name="id1277770"></a><h3>
+<a name="variable_valueconstruct-copy-destruct"></a><code class="computeroutput">variable_value</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1075271-bb"></a>variable_value();</pre></li>
+<li><pre class="literallayout"><a name="id1075273-bb"></a>variable_value(<span class="bold"><strong>const</strong></span> boost::any &amp; v, <span class="bold"><strong>bool</strong></span> defaulted);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1277830"></a><h3>
+<a name="id654389-bb"></a><code class="computeroutput">variable_value</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>const</strong></span> T &amp;</span> <a name="id654395-bb"></a>as() <span class="bold"><strong>const</strong></span>;</pre>
+<p>If stored value if of type T, returns that value. Otherwise, throws boost::bad_any_cast exception. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">T &amp;</span> <a name="id758174-bb"></a>as() ;</pre>
+<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
+</li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id759876-bb"></a>empty() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1002528-bb"></a>defaulted() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns true if the value was not explicitly given, but has default value. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> boost::any &amp;</span> <a name="id755316-bb"></a>value() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Returns the contained value. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">boost::any &amp;</span> <a name="id729135-bb"></a>value() ;</pre>
+<p>Returns the contained value. </p>
+</li>
+</ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="abstract_variables_map.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="variables_map.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variables_map.html b/doc/html/variables_map.html
new file mode 100644
index 0000000000..d09fd14651
--- /dev/null
+++ b/doc/html/variables_map.html
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class variables_map</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id872805" title="Header &lt;boost/program_options/variables_map.hpp&gt;">
+<link rel="prev" href="variable_value.html" title="Class variable_value">
+<link rel="next" href="id1108211.html" title="Function store">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variable_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id1108211.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="variables_map"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class variables_map</span></h2>
+<p>boost::program_options::variables_map &#8212; </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"><strong>class</strong></span> variables_map
+ : : <span class="bold"><strong>public</strong></span> boost::program_options::abstract_variables_map
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="variables_map.html#variables_mapconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="variables_map.html#id1136958-bb">variables_map</a>();
+  <a href="variables_map.html#id1136960-bb">variables_map</a>(<span class="bold"><strong>const</strong></span> <a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> *);
+
+  <span class="emphasis"><em>// <a href="variables_map.html#id755422-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a href="variables_map.html#id861313-bb"><span class="bold"><strong>operator</strong></span>[]</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+
+  <span class="emphasis"><em>// <a href="variables_map.html#id1136978-bb">private member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a href="variables_map.html#id1136984-bb">get</a>(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1278203"></a><h2>Description</h2>
+<p>Concrete variables map which store variables in real map. </p>
+<div class="refsect2" lang="en">
+<a name="id1278210"></a><h3>
+<a name="variables_mapconstruct-copy-destruct"></a><code class="computeroutput">variables_map</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1136958-bb"></a>variables_map();</pre></li>
+<li><pre class="literallayout"><a name="id1136960-bb"></a>variables_map(<span class="bold"><strong>const</strong></span> <a href="abstract_variables_map.html" title="Class abstract_variables_map">abstract_variables_map</a> * next);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1278270"></a><h3>
+<a name="id755422-bb"></a><code class="computeroutput">variables_map</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a name="id861313-bb"></a><span class="bold"><strong>operator</strong></span>[](<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Obtains the value of variable 'name', from *this and possibly from the chain of variable maps.</p>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>if there's no value in *this.</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>if there's next variable map, returns value from it</p></li>
+<li><p>otherwise, returns empty value</p></li>
+</ul></div>
+</li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+<p>if there's defaulted value</p>
+<div class="itemizedlist"><ul type="circle">
+<li><p>if there's next varaible map, which has a non-defauled value, return that</p></li>
+<li><p>otherwise, return value from *this</p></li>
+</ul></div>
+</li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li><p>if there's a non-defauled value, returns it. </p></li></ul></div>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1278372"></a><h3>
+<a name="id1136978-bb"></a><code class="computeroutput">variables_map</code> private member functions</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <a href="variable_value.html" title="Class variable_value">variable_value</a> &amp;</span> <a name="id1136984-bb"></a>get(<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
+<p>Implementation of abstract_variables_map::get which does 'find' in *this. </p>
+</li></ol></div>
+</div>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variable_value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id872805"><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="id1108211.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variant.html b/doc/html/variant.html
index 193a0cec8e..197db47fcb 100644
--- a/doc/html/variant.html
+++ b/doc/html/variant.html
@@ -1,10 +1,220 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/variant.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/variant.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/variant.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 15. Boost.Variant</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries">
+<link rel="prev" href="boost_typetraits/credits.html" title=" Credits">
+<link rel="next" href="variant/tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_typetraits/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="variant/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="variant"></a>Chapter 15. Boost.Variant</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Eric</span> <span class="surname">Friedman</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Itay</span> <span class="surname">Maman</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2002, 2003 Eric Friedman, Itay Maman</p></div>
+<div><div class="legalnotice">
+<a name="id1642545"></a><p>Permission to copy, use, sell and distribute this software
+ is granted provided this copyright notice appears in all copies.
+ Permission to modify the code and to distribute modified code is
+ granted provided this copyright notice appears in all copies, and
+ a notice that the code was modified is included with the copyright
+ notice.</p>
+<p> This software is provided "as is" without express or
+ implied warranty, and with no claim as to its suitability for any
+ purpose.</p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="variant.html#variant.intro">Introduction</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="variant.html#variant.abstract">Abstract</a></span></dt>
+<dt><span class="section"><a href="variant.html#variant.motivation">Motivation</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="variant/tutorial.html">Tutorial</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="variant/tutorial.html#variant.tutorial.basic">Basic Usage</a></span></dt>
+<dt><span class="section"><a href="variant/tutorial.html#variant.tutorial.advanced">Advanced Topics</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="variant/reference.html">Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="variant/reference.html#variant.concepts">Concepts</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#header.boost.variant.hpp">Header &lt;boost/variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1283515">Header &lt;boost/variant/variant_fwd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1258086">Header &lt;boost/variant/variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1362374">Header &lt;boost/variant/recursive_variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1311990">Header &lt;boost/variant/recursive_wrapper.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id872290">Header &lt;boost/variant/apply_visitor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id894482">Header &lt;boost/variant/get.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1561653">Header &lt;boost/variant/bad_visit.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1216732">Header &lt;boost/variant/static_visitor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="variant/reference.html#id1040401">Header &lt;boost/variant/visitor_ptr.hpp&gt;</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="variant/design.html">Design Overview</a></span></dt>
+<dd><dl><dt><span class="section"><a href="variant/design.html#variant.design.never-empty">"Never-Empty" Guarantee</a></span></dt></dl></dd>
+<dt><span class="section"><a href="variant/misc.html">Miscellaneous Notes</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="variant/misc.html#variant.versus-any">Boost.Variant vs. Boost.Any</a></span></dt>
+<dt><span class="section"><a href="variant/misc.html#id1671669">Portability</a></span></dt>
+<dt><span class="section"><a href="variant/misc.html#variant.troubleshooting">Troubleshooting</a></span></dt>
+<dt><span class="section"><a href="variant/misc.html#variant.ack">Acknowledgments</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="variant/refs.html">References</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="variant.intro"></a>Introduction</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="variant.html#variant.abstract">Abstract</a></span></dt>
+<dt><span class="section"><a href="variant.html#variant.motivation">Motivation</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.abstract"></a>Abstract</h4></div></div></div>
+<p>The <code class="computeroutput">variant</code> class template is a safe, generic, stack-based
+discriminated union container, offering a simple solution for manipulating an
+object from a heterogeneous set of types in a uniform manner. Whereas
+standard containers such as <code class="computeroutput">std::vector</code> may be thought of as
+"<span class="bold"><strong>multi-value, single type</strong></span>,"
+<code class="computeroutput">variant</code> is "<span class="bold"><strong>multi-type,
+single value</strong></span>."</p>
+<p>Notable features of <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">boost::variant</a></code>
+include:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>Full value semantics, including adherence to standard
+ overload resolution rules for conversion operations.</li>
+<li>Compile-time type-safe value visitation via
+ <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>.</li>
+<li>Run-time checked explicit value retrieval via
+ <code class="computeroutput"><a href="get.html" title="Function get">boost::get</a></code>.</li>
+<li>Support for recursive variant types via both
+ <code class="computeroutput"><a href="make_recursive_variant.html" title="Class template make_recursive_variant">boost::make_recursive_variant</a></code> and
+ <code class="computeroutput"><a href="recursive_wrapper.html" title="Class template recursive_wrapper">boost::recursive_wrapper</a></code>.</li>
+<li>Efficient implementation -- stack-based when possible (see
+ <a href="variant/design.html#variant.design.never-empty" title='"Never-Empty" Guarantee'>the section called &#8220;"Never-Empty" Guarantee&#8221;</a> for more details).</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.motivation"></a>Motivation</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="variant.html#variant.motivation.problem">Problem</a></span></dt>
+<dt><span class="section"><a href="variant.html#variant.motivation.solution">Solution: A Motivating Example</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.motivation.problem"></a>Problem</h5></div></div></div>
+<p>Many times, during the development of a C++ program, the
+programmer finds himself in need of manipulating several distinct
+types in a uniform manner. Indeed, C++ features direct language
+support for such types through its <code class="computeroutput">union</code>
+keyword:</p>
+<pre class="programlisting">union { int i; double d; } u;
+u.d = 3.14;
+u.i = 3; // overwrites u.d (OK: u.d is a POD type)</pre>
+<p>C++'s <code class="computeroutput">union</code> construct, however, is nearly
+useless in an object-oriented environment. The construct entered
+the language primarily as a means for preserving compatibility with
+C, which supports only POD (Plain Old Data) types, and so does not
+accept types exhibiting non-trivial construction or
+destruction:</p>
+<pre class="programlisting">union {
+ int i;
+ std::string s; // illegal: std::string is not a POD type!
+} u;</pre>
+<p>Clearly another approach is required. Typical solutions
+feature the dynamic-allocation of objects, which are subsequently
+manipulated through a common base type (often a virtual base class
+ [<a href="variant/refs.html#variant.refs.hen01">Hen01</a>]
+or, more dangerously, a <code class="computeroutput">void*</code>). Objects of
+concrete type may be then retrieved by way of a polymorphic downcast
+construct (e.g., <code class="computeroutput">dynamic_cast</code>,
+<code class="computeroutput"><a href="any_cast.html" title="Function any_cast">boost::any_cast</a></code>, etc.).</p>
+<p>However, solutions of this sort are highly error-prone, due
+to the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<span class="emphasis"><em>Downcast errors cannot be detected at
+ compile-time.</em></span> Thus, incorrect usage of downcast
+ constructs will lead to bugs detectable only at run-time.</li>
+<li>
+<span class="emphasis"><em>Addition of new concrete types may be
+ ignored.</em></span> If a new concrete type is added to the
+ hierarchy, existing downcast code will continue to work as-is,
+ wholly ignoring the new type. Consequently, the programmer must
+ manually locate and modify code at numerous locations, which often
+ results in run-time errors that are difficult to find.</li>
+</ul></div>
+<p>Furthermore, even when properly implemented, these solutions tend
+to incur a relatively significant abstraction penalty due to the use of
+the heap, virtual function calls, and polymorphic downcasts.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.motivation.solution"></a>Solution: A Motivating Example</h5></div></div></div>
+<p>The <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">boost::variant</a></code> class template
+addresses these issues in a safe, straightforward, and efficient manner. The
+following example demonstrates how the class can be used:</p>
+<pre class="programlisting">#include "boost/variant.hpp"
+#include &lt;iostream&gt;
+
+class my_visitor : public <code class="computeroutput"><a href="static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;int&gt;
+{
+public:
+ int operator()(int i) const
+ {
+ return i;
+ }
+
+ int operator()(const <code class="computeroutput">std::string</code> &amp; str) const
+ {
+ return str.length();
+ }
+};
+
+int main()
+{
+ <code class="computeroutput"><a href="boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; int, std::string &gt; u("hello world");
+ std::cout &lt;&lt; u; // output: hello world
+
+ int result = <code class="computeroutput"><a href="apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( my_visitor(), u );
+ std::cout &lt;&lt; result; // output: 11 (i.e., length of "hello world")
+}
+</pre>
+</div>
+</div>
+</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></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_typetraits/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="variant/tutorial.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
diff --git a/doc/html/variant/design.html b/doc/html/variant/design.html
new file mode 100644
index 0000000000..3d075ac50a
--- /dev/null
+++ b/doc/html/variant/design.html
@@ -0,0 +1,333 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Design Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="prev" href="../visitor_ptr.html" title="Function template visitor_ptr">
+<link rel="next" href="misc.html" title="Miscellaneous Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../visitor_ptr.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="misc.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="variant.design"></a>Design Overview</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="design.html#variant.design.never-empty">"Never-Empty" Guarantee</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.design.never-empty"></a>"Never-Empty" Guarantee</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.guarantee">The Guarantee</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.problem">The Implementation Problem</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.memcpy-solution">The "Ideal" Solution: False Hopes</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.double-storage-solution">An Initial Solution: Double Storage</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.heap-backup-solution">Current Approach: Temporary Heap Backup</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.optimizations">Enabling Optimizations</a></span></dt>
+<dt><span class="section"><a href="design.html#variant.design.never-empty.roadmap">Future Direction: Policy-based Implementation</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.guarantee"></a>The Guarantee</h5></div></div></div>
+<p>All instances <code class="computeroutput">v</code> of type
+ <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1,T2,...,TN&gt;</code>
+ guarantee that <code class="computeroutput">v</code> has constructed content of one of the
+ types <code class="computeroutput">T<span class="emphasis"><em>i</em></span></code>, even if an operation on
+ <code class="computeroutput">v</code> has previously failed.</p>
+<p>This implies that <code class="computeroutput">variant</code> may be viewed precisely as
+ a union of <span class="emphasis"><em>exactly</em></span> its bounded types. This
+ "never-empty" property insulates the user from the
+ possibility of undefined <code class="computeroutput">variant</code> content and the
+ significant additional complexity-of-use attendant with such a
+ possibility.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.problem"></a>The Implementation Problem</h5></div></div></div>
+<p>While the
+ <a href="design.html#variant.design.never-empty.guarantee" title="The Guarantee">never-empty guarantee</a>
+ might at first seem "obvious," it is in fact not even
+ straightforward how to implement it in general (i.e., without
+ unreasonably restrictive additional requirements on
+ <a href="../">bounded types</a>).</p>
+<p>The central difficulty emerges in the details of
+ <code class="computeroutput">variant</code> assignment. Given two instances <code class="computeroutput">v1</code>
+ and <code class="computeroutput">v2</code> of some concrete <code class="computeroutput">variant</code> type, there
+ are two distinct, fundamental cases we must consider for the assignment
+ <code class="computeroutput">v1 = v2</code>.</p>
+<p>First consider the case that <code class="computeroutput">v1</code> and <code class="computeroutput">v2</code>
+ each contains a value of the same type. Call this type <code class="computeroutput">T</code>.
+ In this situation, assignment is perfectly straightforward: use
+ <code class="computeroutput">T::operator=</code>.</p>
+<p>However, we must also consider the case that <code class="computeroutput">v1</code> and
+ <code class="computeroutput">v2</code> contain values <span class="emphasis"><em>of distinct types</em></span>.
+ Call these types <code class="computeroutput">T</code> and <code class="computeroutput">U</code>. At this point,
+ since <code class="computeroutput">variant</code> manages its content on the stack, the
+ left-hand side of the assignment (i.e., <code class="computeroutput">v1</code>) must destroy
+ its content so as to permit in-place copy-construction of the content
+ of the right-hand side (i.e., <code class="computeroutput">v2</code>). In the end, whereas
+ <code class="computeroutput">v1</code> began with content of type <code class="computeroutput">T</code>, it ends
+ with content of type <code class="computeroutput">U</code>, namely a copy of the content of
+ <code class="computeroutput">v2</code>.</p>
+<p>The crux of the problem, then, is this: in the event that
+ copy-construction of the content of <code class="computeroutput">v2</code> fails, how can
+ <code class="computeroutput">v1</code> maintain its "never-empty" guarantee?
+ By the time copy-construction from <code class="computeroutput">v2</code> is attempted,
+ <code class="computeroutput">v1</code> has already destroyed its content!</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.memcpy-solution"></a>The "Ideal" Solution: False Hopes</h5></div></div></div>
+<p>Upon learning of this dilemma, clever individuals may propose the
+ following scheme hoping to solve the problem:
+
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>Provide some "backup" storage, appropriately
+ aligned, capable of holding values of the contained type of the
+ left-hand side.</li>
+<li>Copy the memory (e.g., using <code class="computeroutput">memcpy</code>) of the
+ storage of the left-hand side to the backup storage.</li>
+<li>Attempt a copy of the right-hand side content to the
+ (now-replicated) left-hand side storage.</li>
+<li>In the event of an exception from the copy, restore the
+ backup (i.e., copy the memory from the backup storage back into
+ the left-hand side storage).</li>
+<li>Otherwise, in the event of success, now copy the memory
+ of the left-hand side storage to another "temporary"
+ aligned storage.</li>
+<li>Now restore the backup (i.e., again copying the memory)
+ to the left-hand side storage; with the "old" content
+ now restored, invoke the destructor of the contained type on the
+ storage of the left-hand side.</li>
+<li>Finally, copy the memory of the temporary storage to the
+ (now-empty) storage of the left-hand side.</li>
+</ol></div>
+<p>While complicated, it appears such a scheme could provide the
+ desired safety in a relatively efficient manner. In fact, several
+ early iterations of the library implemented this very approach.</p>
+<p>Unfortunately, as Dave Abraham's first noted, the scheme results
+ in undefined behavior:
+
+ </p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>"That's a lot of code to read through, but if it's
+ doing what I think it's doing, it's undefined behavior.</p>
+<p>"Is the trick to move the bits for an existing object
+ into a buffer so we can tentatively construct a new object in
+ that memory, and later move the old bits back temporarily to
+ destroy the old object?</p>
+<p>"The standard does not give license to do that: only one
+ object may have a given address at a time. See 3.8, and
+ particularly paragraph 4."</p>
+</blockquote></div>
+<p>Additionally, as close examination quickly reveals, the scheme has
+ the potential to create irreconcilable race-conditions in concurrent
+ environments.</p>
+<p>Ultimately, even if the above scheme could be made to work on
+ certain platforms with particular compilers, it is still necessary to
+ find a portable solution.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.double-storage-solution"></a>An Initial Solution: Double Storage</h5></div></div></div>
+<p>Upon learning of the infeasibility of the above scheme, Anthony
+ Williams proposed in
+ <a href="refs.html#variant.refs.wil02">[Wil02]</a> a scheme that served
+ as the basis for a portable solution in some pre-release
+ implementations of <code class="computeroutput">variant</code>.</p>
+<p>The essential idea to this scheme, which shall be referred to as
+ the "double storage" scheme, is to provide enough space
+ within a <code class="computeroutput">variant</code> to hold two separate values of any of
+ the bounded types.</p>
+<p>With the secondary storage, a copy the right-hand side can be
+ attempted without first destroying the content of the left-hand side;
+ accordingly, the content of the left-hand side remains available in
+ the event of an exception.</p>
+<p>Thus, with this scheme, the <code class="computeroutput">variant</code> implementation
+ needs only to keep track of which storage contains the content -- and
+ dispatch any visitation requests, queries, etc. accordingly.</p>
+<p>The most obvious flaw to this approach is the space overhead
+ incurred. Though some optimizations could be applied in special cases
+ to eliminate the need for double storage -- for certain bounded types
+ or in some cases entirely (see
+ <a href="design.html#variant.design.never-empty.optimizations" title="Enabling Optimizations">the section called &#8220;Enabling Optimizations&#8221;</a> for more
+ details) -- many users on the Boost mailing list strongly objected to
+ the use of double storage. In particular, it was noted that the
+ overhead of double storage would be at play at all times -- even if
+ assignment to <code class="computeroutput">variant</code> never occurred. For this reason
+ and others, a new approach was developed.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.heap-backup-solution"></a>Current Approach: Temporary Heap Backup</h5></div></div></div>
+<p>Despite the many objections to the double storage solution, it was
+ realized that no replacement would be without drawbacks. Thus, a
+ compromise was desired.</p>
+<p>To this end, Dave Abrahams suggested to include the following in
+ the behavior specification for <code class="computeroutput">variant</code> assignment:
+ "<code class="computeroutput">variant</code> assignment from one type to another may
+ incur dynamic allocation." That is, while <code class="computeroutput">variant</code> would
+ continue to store its content <span class="emphasis"><em>in situ</em></span> after
+ construction and after assignment involving identical contained types,
+ <code class="computeroutput">variant</code> would store its content on the heap after
+ assignment involving distinct contained types.</p>
+<p>The algorithm for assignment would proceed as follows:
+
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>Copy-construct the content of the right-hand side to the
+ heap; call the pointer to this data <code class="computeroutput">p</code>.</li>
+<li>Destroy the content of the left-hand side.</li>
+<li>Copy <code class="computeroutput">p</code> to the left-hand side
+ storage.</li>
+</ol></div>
+<p>
+
+ Since all operations on pointers are nothrow, this scheme would allow
+ <code class="computeroutput">variant</code> to meet its never-empty guarantee.
+ </p>
+<p>The most obvious concern with this approach is that while it
+ certainly eliminates the space overhead of double storage, it
+ introduces the overhead of dynamic-allocation to <code class="computeroutput">variant</code>
+ assignment -- not just in terms of the initial allocation but also
+ as a result of the continued storage of the content on the heap. While
+ the former problem is unavoidable, the latter problem may be avoided
+ with the following "temporary heap backup" technique:
+
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>Copy-construct the content of the
+ <span class="emphasis"><em>left</em></span>-hand side to the heap; call the pointer to
+ this data <code class="computeroutput">backup</code>.</li>
+<li>Destroy the content of the left-hand side.</li>
+<li>Copy-construct the content of the right-hand side in the
+ (now-empty) storage of the left-hand side.</li>
+<li>In the event of failure, copy <code class="computeroutput">backup</code> to the
+ left-hand side storage.</li>
+<li>In the event of success, deallocate the data pointed to
+ by <code class="computeroutput">backup</code>.</li>
+</ol></div>
+<p>With this technique: 1) only a single storage is used;
+ 2) allocation is on the heap in the long-term only if the assignment
+ fails; and 3) after any <span class="emphasis"><em>successful</em></span> assignment,
+ storage within the <code class="computeroutput">variant</code> is guaranteed. For the
+ purposes of the initial release of the library, these characteristics
+ were deemed a satisfactory compromise solution.</p>
+<p>There remain notable shortcomings, however. In particular, there
+ may be some users for which heap allocation must be avoided at all
+ costs; for other users, any allocation may need to occur via a
+ user-supplied allocator. These issues will be addressed in the future
+ (see <a href="design.html#variant.design.never-empty.roadmap" title="Future Direction: Policy-based Implementation">the section called &#8220;Future Direction: Policy-based Implementation&#8221;</a>). For now,
+ though, the library treats storage of its content as an implementation
+ detail. Nonetheless, as described in the next section, there
+ <span class="emphasis"><em>are</em></span> certain things the user can do to ensure the
+ greatest efficiency for <code class="computeroutput">variant</code> instances (see
+ <a href="design.html#variant.design.never-empty.optimizations" title="Enabling Optimizations">the section called &#8220;Enabling Optimizations&#8221;</a> for
+ details).</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.optimizations"></a>Enabling Optimizations</h5></div></div></div>
+<p>As described in
+ <a href="design.html#variant.design.never-empty.problem" title="The Implementation Problem">the section called &#8220;The Implementation Problem&#8221;</a>, the central
+ difficulty in implementing the never-empty guarantee is the
+ possibility of failed copy-construction during <code class="computeroutput">variant</code>
+ assignment. Yet types with nothrow copy constructors clearly never
+ face this possibility. Similarly, if one of the bounded types of the
+ <code class="computeroutput">variant</code> is nothrow default-constructible, then such a
+ type could be used as a safe "fallback" type in the event of
+ failed copy construction.</p>
+<p>Accordingly, <code class="computeroutput">variant</code> is designed to enable the
+ following optimizations once the following criteria on its bounded
+ types are met:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>For each bounded type <code class="computeroutput">T</code> that is nothrow
+ copy-constructible (as indicated by
+ <code class="computeroutput">boost::has_nothrow_copy</code>), the
+ library guarantees <code class="computeroutput">variant</code> will use only single
+ storage and in-place construction for <code class="computeroutput">T</code>.</li>
+<li>If <span class="emphasis"><em>any</em></span> bounded type is nothrow
+ default-constructible (as indicated by
+ <code class="computeroutput">boost::has_nothrow_constructor</code>),
+ the library guarantees <code class="computeroutput">variant</code> will use only single
+ storage and in-place construction for <span class="emphasis"><em>every</em></span>
+ bounded type in the <code class="computeroutput">variant</code>. Note, however, that in
+ the event of assignment failure, an unspecified nothrow
+ default-constructible bounded type will be default-constructed in
+ the left-hand side operand so as to preserve the never-empty
+ guarantee.</li>
+</ul></div>
+<p><span class="bold"><strong>Caveat</strong></span>: On most platforms, the
+ Type Traits templates
+ <code class="computeroutput">has_nothrow_copy</code> and <code class="computeroutput">has_nothrow_constructor</code>
+ by default return <code class="computeroutput">false</code> for all <code class="computeroutput">class</code> and
+ <code class="computeroutput">struct</code> types. It is necessary therefore to provide
+ specializations of these templates as appropriate for user-defined
+ types, as demonstrated in the following:
+
+</p>
+<pre class="programlisting">// ...in your code (at file scope)...
+
+namespace boost {
+
+ template &lt;&gt;
+ struct <code class="computeroutput">has_nothrow_copy</code>&lt; myUDT &gt;
+ : <code class="computeroutput">mpl::true_</code>
+ {
+ };
+
+}
+</pre>
+<p><span class="bold"><strong>Implementation Note</strong></span>: So as to make
+ the behavior of <code class="computeroutput">variant</code> more predictable in the aftermath
+ of an exception, the current implementation prefers to default-construct
+ <code class="computeroutput">boost::blank</code> if specified as a
+ bounded type instead of other nothrow default-constructible bounded
+ types. (If this is deemed to be a useful feature, it will become part
+ of the specification for <code class="computeroutput">variant</code>; otherwise, it may be
+ obsoleted. Please provide feedback to the Boost mailing list.)</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.design.never-empty.roadmap"></a>Future Direction: Policy-based Implementation</h5></div></div></div>
+<p>As the previous sections have demonstrated, much effort has been
+ expended in an attempt to provide a balance between performance, data
+ size, and heap usage. Further, significant optimizations may be
+ enabled in <code class="computeroutput">variant</code> on the basis of certain traits of its
+ bounded types.</p>
+<p>However, there will be some users for whom the chosen compromise
+ is unsatisfactory (e.g.: heap allocation must be avoided at all costs;
+ if heap allocation is used, custom allocators must be used; etc.). For
+ this reason, a future version of the library will support a
+ policy-based implementation of <code class="computeroutput">variant</code>. While this will
+ not eliminate the problems described in the previous sections, it will
+ allow the decisions regarding tradeoffs to be decided by the user
+ rather than the library designers.</p>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../visitor_ptr.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="misc.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variant/misc.html b/doc/html/variant/misc.html
new file mode 100644
index 0000000000..ea73becafb
--- /dev/null
+++ b/doc/html/variant/misc.html
@@ -0,0 +1,249 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Miscellaneous Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="prev" href="design.html" title="Design Overview">
+<link rel="next" href="refs.html" title="References">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="refs.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="variant.misc"></a>Miscellaneous Notes</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="misc.html#variant.versus-any">Boost.Variant vs. Boost.Any</a></span></dt>
+<dt><span class="section"><a href="misc.html#id1671669">Portability</a></span></dt>
+<dt><span class="section"><a href="misc.html#variant.troubleshooting">Troubleshooting</a></span></dt>
+<dt><span class="section"><a href="misc.html#variant.ack">Acknowledgments</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.versus-any"></a>Boost.Variant vs. Boost.Any</h4></div></div></div>
+<p>As a discriminated union container, the Variant library shares many
+ of the same features of the <a href="../any.html" title="Chapter 1. Boost.Any">Any</a> library.
+ However, since neither library wholly encapsulates the features of the
+ other, one library cannot be generally recommended for use over the
+ other.</p>
+<p>That said, Boost.Variant has several advantages over Boost.Any,
+ such as:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>Boost.Variant guarantees the type of its content is one of a
+ finite, user-specified set of types.</li>
+<li>Boost.Variant provides <span class="emphasis"><em>compile-time</em></span>
+ checked visitation of its content. (By contrast, the current version
+ of Boost.Any provides no visitation mechanism at all; but even if it
+ did, it would need to be checked at run-time.)</li>
+<li>Boost.Variant enables generic visitation of its content.
+ (Even if Boost.Any did provide a visitation mechanism, it would enable
+ visitation only of explicitly-specified types.)</li>
+<li>Boost.Variant offers an efficient, stack-based storage scheme
+ (avoiding the overhead of dynamic allocation).</li>
+</ul></div>
+<p>Of course, Boost.Any has several advantages over Boost.Variant,
+ such as:
+
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>Boost.Any, as its name implies, allows virtually any type for
+ its content, providing great flexibility.</li>
+<li>Boost.Any provides the no-throw guarantee of exception safety
+ for its swap operation.</li>
+<li>Boost.Any makes little use of template metaprogramming
+ techniques (avoiding potentially hard-to-read error messages and
+ significant compile-time processor and memory demands).</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1671669"></a>Portability</h4></div></div></div>
+<p>The library aims for 100% ANSI/ISO C++ conformance. However, this is
+ strictly impossible due to the inherently non-portable nature of the
+ Type Traits library's
+ <code class="computeroutput">type_with_alignment</code> facility. In
+ practice though, no compilers or platforms have been discovered where this
+ reliance on undefined behavior has been an issue.</p>
+<p>Additionally, significant effort has been expended to ensure proper
+ functioning despite various compiler bugs and other conformance problems.
+ To date the library <a href="../">testsuite</a> has
+ been compiled and tested successfully on at least the following compilers
+ for basic and advanced functionality:
+
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th> </th>
+<th>Basic</th>
+<th><code class="computeroutput">variant&lt;T&amp;&gt;</code></th>
+<th><a href="tutorial.html#variant.tutorial.over-sequence" title="Using a type sequence to specify bounded types"><code class="computeroutput">make_variant_over</code></a></th>
+<th><a href="tutorial.html#variant.tutorial.recursive.recursive-variant" title="Recursive types with make_recursive_variant"><code class="computeroutput">make_recursive_variant</code></a></th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Borland C++ 5.5.1 and 5.6.4</td>
+<td>X</td>
+<td>X</td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td>Comeau C++ 4.3.0</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+</tr>
+<tr>
+<td>GNU GCC 3.3.1</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+</tr>
+<tr>
+<td>GNU GCC 2.95.3</td>
+<td>X</td>
+<td>X</td>
+<td> </td>
+<td>X</td>
+</tr>
+<tr>
+<td>Intel C++ 7.0</td>
+<td>X</td>
+<td> </td>
+<td>X</td>
+<td>X</td>
+</tr>
+<tr>
+<td>Metrowerks CodeWarrior 8.3</td>
+<td>X</td>
+<td> </td>
+<td>X</td>
+<td>X</td>
+</tr>
+<tr>
+<td>Microsoft Visual C++ 7.1</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+<td>X</td>
+</tr>
+<tr>
+<td>Microsoft Visual C++ 6 SP5 and 7</td>
+<td>X</td>
+<td> </td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+<p>Finally, the current state of the testsuite in CVS may be found on the
+ <a href="http://boost.sourceforge.net/regression-logs" target="_top">Test Summary</a>
+ page. Please note, however, that this page reports on day-to-day changes
+ to inter-release code found in the Boost CVS and thus likely does not
+ match the state of code found in Boost releases.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.troubleshooting"></a>Troubleshooting</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="misc.html#variant.troubleshooting.template-depth">"Template instantiation depth exceeds maximum"</a></span></dt>
+<dt><span class="section"><a href="misc.html#variant.troubleshooting.compiler-memory">"Internal heap limit reached"</a></span></dt>
+</dl></div>
+<p>Due to the heavy use of templates in the implementation of
+ <code class="computeroutput">variant</code>, it is not uncommon when compiling to encounter
+ problems related to template instantiaton depth, compiler memory, etc. This
+ section attempts to provide advice to common problems experienced on several
+ popular compilers.</p>
+<p>(This section is still in progress, with additional advice/feedback
+ welcome. Please post to the Boost-Users list with any useful experiences you
+ may have.)</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.troubleshooting.template-depth"></a>"Template instantiation depth exceeds maximum"</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="misc.html#variant.troubleshooting.template-depth.gcc">GNU GCC</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="variant.troubleshooting.template-depth.gcc"></a>GNU GCC</h6></div></div></div>
+<p>The compiler option
+ <code class="computeroutput">-ftemplate-depth-<span class="emphasis"><em>NN</em></span></code> can increase the
+ maximum allowed instantiation depth. (Try
+ <code class="computeroutput">-ftemplate-depth-50</code>.)</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.troubleshooting.compiler-memory"></a>"Internal heap limit reached"</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="misc.html#variant.troubleshooting.compiler-memory.msvc">Microsoft Visual C++</a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="variant.troubleshooting.compiler-memory.msvc"></a>Microsoft Visual C++</h6></div></div></div>
+<p>The compiler option <code class="computeroutput">/Zm<span class="emphasis"><em>NNN</em></span></code> can
+ increase the memory allocation limit. The <code class="computeroutput">NNN</code> is a
+ scaling percentage (i.e., <code class="computeroutput">100</code> denotes the default limit).
+ (Try <code class="computeroutput">/Zm200</code>.)</p>
+</div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.ack"></a>Acknowledgments</h4></div></div></div>
+<p>Eric Friedman and Itay Maman designed the initial submission; Eric was
+ the primary implementer.</p>
+<p>Eric is also the library maintainer and has expanded upon the initial
+ submission -- adding
+ <code class="computeroutput"><a href="../make_recursive_variant.html" title="Class template make_recursive_variant">make_recursive_variant</a></code>,
+ <code class="computeroutput"><a href="../make_variant_over.html" title="Class template make_variant_over">make_variant_over</a></code>, support for
+ reference content, etc.</p>
+<p>Andrei Alexandrescu's work in
+ [<a href="refs.html#variant.refs.ale01a">Ale01a</a>]
+and
+ [<a href="refs.html#variant.refs.ale02">Ale02</a>]
+inspired the library's design.</p>
+<p>Jeff Garland was the formal review manager.</p>
+<p>Douglas Gregor,
+Dave Abrahams,
+Anthony Williams,
+Fernando Cacciola,
+Joel de Guzman,
+Dirk Schreib,
+Brad King,
+Giovanni Bajo,
+Eugene Gladyshev,
+and others provided helpful feedback and suggestions to refine the semantics,
+interface, and implementation of the library.</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="design.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="refs.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variant/reference.html b/doc/html/variant/reference.html
new file mode 100644
index 0000000000..de7e151128
--- /dev/null
+++ b/doc/html/variant/reference.html
@@ -0,0 +1,301 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="prev" href="tutorial.html" title="Tutorial">
+<link rel="next" href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="../BOOST_VARIANT_LIMIT_TYPES.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="variant.reference"></a>Reference</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#variant.concepts">Concepts</a></span></dt>
+<dt><span class="section"><a href="reference.html#header.boost.variant.hpp">Header &lt;boost/variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1283515">Header &lt;boost/variant/variant_fwd.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1258086">Header &lt;boost/variant/variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1362374">Header &lt;boost/variant/recursive_variant.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1311990">Header &lt;boost/variant/recursive_wrapper.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id872290">Header &lt;boost/variant/apply_visitor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id894482">Header &lt;boost/variant/get.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1561653">Header &lt;boost/variant/bad_visit.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1216732">Header &lt;boost/variant/static_visitor.hpp&gt;</a></span></dt>
+<dt><span class="section"><a href="reference.html#id1040401">Header &lt;boost/variant/visitor_ptr.hpp&gt;</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.concepts"></a>Concepts</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#variant.concepts.bounded-type"><span class="emphasis"><em>BoundedType</em></span></a></span></dt>
+<dt><span class="section"><a href="reference.html#variant.concepts.static-visitor"><span class="emphasis"><em>StaticVisitor</em></span></a></span></dt>
+<dt><span class="section"><a href="reference.html#variant.concepts.output-streamable"><span class="emphasis"><em>OutputStreamable</em></span></a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.concepts.bounded-type"></a><span class="emphasis"><em>BoundedType</em></span></h5></div></div></div>
+<p>The requirements on a <span class="bold"><strong>bounded type</strong></span>
+ are as follows:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<a href="../CopyConstructible.html" title="Concept CopyConstructible">CopyConstructible</a> [20.1.3].</li>
+<li>Destructor upholds the no-throw exception-safety
+ guarantee.</li>
+<li>Complete at the point of <code class="computeroutput">variant</code> template
+ instantiation. (See
+ <code class="computeroutput"><a href="../recursive_wrapper.html" title="Class template recursive_wrapper">boost::recursive_wrapper</a>&lt;T&gt;</code>
+ for a type wrapper that accepts incomplete types to enable recursive
+ <code class="computeroutput">variant</code> types.)</li>
+</ul></div>
+<p>Every type specified as a template argument to
+ <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">variant</a></code> must at minimum fulfill the
+ above requirements. In addition, certain features of <code class="computeroutput">variant</code>
+ are available only if its bounded types meet the requirements of these
+ following additional concepts:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<a href="../Assignable.html" title="Concept Assignable">Assignable</a>:
+ <code class="computeroutput">variant</code> is itself <span class="emphasis"><em>Assignable</em></span> if and
+ only if every one of its bounded types meets the requirements of the
+ concept. (Note that top-level <code class="computeroutput">const</code>-qualified types and
+ reference types do <span class="emphasis"><em>not</em></span> meet these
+ requirements.)</li>
+<li>
+<a href="../DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a> [20.1.4]:
+ <code class="computeroutput">variant</code> is itself
+ <a href="../DefaultConstructible.html" title="Concept DefaultConstructible">DefaultConstructible</a> if and only if its first
+ bounded type (i.e., <code class="computeroutput">T1</code>) meets the requirements of the
+ concept.</li>
+<li>
+<a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>:
+ <code class="computeroutput">variant</code> is itself <a href="../EqualityComparable.html" title="Concept EqualityComparable">EqualityComparable</a>
+ if and only if every one of its bounded types meets the requirements
+ of the concept.</li>
+<li>
+<a href="../LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a>:
+ <code class="computeroutput">variant</code> is itself <a href="../LessThanComparable.html" title="Concept LessThanComparable">LessThanComparable</a>
+ if and only if every one of its bounded types meets the requirements
+ of the concept.</li>
+<li>
+<a href="reference.html#variant.concepts.output-streamable" title="OutputStreamable"><span class="emphasis"><em>OutputStreamable</em></span></a>:
+ <code class="computeroutput">variant</code> is itself <span class="emphasis"><em>OutputStreamable</em></span>
+ if and only if every one of its bounded types meets the requirements
+ of the concept.</li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.concepts.static-visitor"></a><span class="emphasis"><em>StaticVisitor</em></span></h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#variant.concepts.static-visitor.examples">Examples</a></span></dt></dl></div>
+<p>The requirements on a <span class="bold"><strong>static
+ visitor</strong></span> of a type <code class="computeroutput">T</code> are as follows:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>Must allow invocation as a function by overloading
+ <code class="computeroutput">operator()</code>, unambiguously accepting any value of type
+ <code class="computeroutput">T</code>.</li>
+<li>Must expose inner type <code class="computeroutput">result_type</code>. (See
+ <code class="computeroutput"><a href="../visitor_ptr.html" title="Function template visitor_ptr">boost::visitor_ptr</a></code> for a
+ solution to using functions as visitors.)</li>
+<li>If <code class="computeroutput">result_type</code> is not <code class="computeroutput">void</code>, then
+ each operation of the function object must return a value implicitly
+ convertible to <code class="computeroutput">result_type</code>.</li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="variant.concepts.static-visitor.examples"></a>Examples</h6></div></div></div>
+<p>The following class satisfies the requirements of a static visitor
+ of several types (i.e., explicitly: <code class="computeroutput">int</code> and
+ <code class="computeroutput">std::string</code>; or, e.g., implicitly: <code class="computeroutput">short</code> and
+ <code class="computeroutput">const char *</code>; etc.):</p>
+<pre class="programlisting">class my_visitor
+ : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;int&gt;
+{
+public:
+
+ int operator()(int i)
+ {
+ return i * 2;
+ }
+
+ int operator()(const std::string&amp; s)
+ {
+ return s.length();
+ }
+
+};</pre>
+<p>Another example is the following class, whose function-call
+ operator is a member template, allowing it to operate on values of many
+ types. Thus, the following class is a visitor of any type that supports
+ streaming output (e.g., <code class="computeroutput">int</code>, <code class="computeroutput">double</code>,
+ <code class="computeroutput">std::string</code>, etc.):</p>
+<pre class="programlisting">class printer
+ : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;&gt;
+{
+ template &lt;typename T&gt;
+ void operator()(const T&amp; t)
+ {
+ std::cout &lt;&lt; t &lt;&lt; std::endl;
+ }
+};</pre>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.concepts.output-streamable"></a><span class="emphasis"><em>OutputStreamable</em></span></h5></div></div></div>
+<p>The requirements on an <span class="bold"><strong>output
+ streamable</strong></span> type <code class="computeroutput">T</code> are as follows:</p>
+<div class="itemizedlist"><ul type="disc"><li>For any object <code class="computeroutput">t</code> of type <code class="computeroutput">T</code>,
+ <code class="computeroutput">std::cout &lt;&lt; t</code> must be a valid
+ expression.</li></ul></div>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.variant.hpp"></a>Header &lt;<a href="../../../boost/variant.hpp" target="_top">boost/variant.hpp</a>&gt;</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#variant.header.include-all"></a></span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage"></div>
+<p>This header exists simply as a convenience to the user, including
+ all of the headers in the <code class="computeroutput">boost/variant</code> directory.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1283515"></a>Header &lt;<a href="../../../boost/variant/variant_fwd.hpp" target="_top">boost/variant/variant_fwd.hpp</a>&gt;</h4></div></div></div>
+<p>Provides forward declarations of the
+ <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>,
+ <code class="computeroutput"><a href="../make_variant_over.html" title="Class template make_variant_over">boost::make_variant_over</a></code>,
+ <code class="computeroutput"><a href="../make_recursive_variant.html" title="Class template make_recursive_variant">boost::make_recursive_variant</a></code>, and
+ <code class="computeroutput"><a href="../id1151195.html" title="Class template make_recursive_variant_over">boost::make_recursive_variant_over</a></code>
+ class templates and the <code class="computeroutput">boost::recursive_variant_</code> tag type.
+ Also defines several preprocessor symbols, as described below.</p>
+<pre class="synopsis">
+
+<a href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a>
+<a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a>(param)
+<a href="../id691834.html" title="Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS">BOOST_VARIANT_ENUM_SHIFTED_PARAMS</a>(param)
+<a href="../id1222024.html" title="Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT">BOOST_VARIANT_NO_REFERENCE_SUPPORT</a>
+<a href="../id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</a>
+<a href="../id696758.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</a></pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1258086"></a>Header &lt;<a href="../../../boost/variant/variant.hpp" target="_top">boost/variant/variant.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2 = <span class="emphasis"><em>unspecified</em></span>, ...,
+           <span class="bold"><strong>typename</strong></span> TN = <span class="emphasis"><em>unspecified</em></span>&gt;
+   <span class="bold"><strong>class</strong></span> <a href="../boost/variant.html" title="Class template variant">variant</a>;
+
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sequence&gt; <span class="bold"><strong>class</strong></span> <a href="../make_variant_over.html" title="Class template make_variant_over">make_variant_over</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="../id928296.html" title="Function template swap">swap</a>(<a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp;, <a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ElemType, <span class="bold"><strong>typename</strong></span> Traits, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ...,
+           <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type">std::basic_ostream&lt;ElemType,Traits&gt; &amp;</span>
+    <a href="../id1214336.html" title="Function template operator&lt;&lt;"><span class="bold"><strong>operator</strong></span>&lt;&lt;</a>(std::basic_ostream&lt;ElemType,Traits&gt; &amp;,
+               <span class="bold"><strong>const</strong></span> <a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1362374"></a>Header &lt;<a href="../../../boost/variant/recursive_variant.hpp" target="_top">boost/variant/recursive_variant.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> recursive_variant_;
+
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2 = <span class="emphasis"><em>unspecified</em></span>, ...,
+           <span class="bold"><strong>typename</strong></span> TN = <span class="emphasis"><em>unspecified</em></span>&gt;
+   <span class="bold"><strong>class</strong></span> <a href="../make_recursive_variant.html" title="Class template make_recursive_variant">make_recursive_variant</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Sequence&gt; <span class="bold"><strong>class</strong></span> <a href="../id1151195.html" title="Class template make_recursive_variant_over">make_recursive_variant_over</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1311990"></a>Header &lt;<a href="../../../boost/variant/recursive_wrapper.hpp" target="_top">boost/variant/recursive_wrapper.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../recursive_wrapper.html" title="Class template recursive_wrapper">recursive_wrapper</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../is_recursive_wrapper.html" title="Class template is_recursive_wrapper">is_recursive_wrapper</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="bold"><strong>class</strong></span> <a href="../unwrap_recursive_wrapper.html" title="Class template unwrap_recursive_wrapper">unwrap_recursive_wrapper</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id872290"></a>Header &lt;<a href="../../../boost/variant/apply_visitor.hpp" target="_top">boost/variant/apply_visitor.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor&gt; <span class="bold"><strong>class</strong></span> <a href="../apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">apply_visitor_delayed_t</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> Variant&gt;
+    <span class="type"><span class="bold"><strong>typename</strong></span> Visitor::result_type</span> <a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a>(Visitor &amp;, Variant &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> Variant&gt;
+    <span class="type"><span class="bold"><strong>typename</strong></span> Visitor::result_type</span> <a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a>(<span class="bold"><strong>const</strong></span> Visitor &amp;, Variant &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> BinaryVisitor, <span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+    <span class="type"><span class="bold"><strong>typename</strong></span> BinaryVisitor::result_type</span>
+    <a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a>(BinaryVisitor &amp;, Variant1 &amp;, Variant2 &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> BinaryVisitor, <span class="bold"><strong>typename</strong></span> Variant1, <span class="bold"><strong>typename</strong></span> Variant2&gt;
+    <span class="type"><span class="bold"><strong>typename</strong></span> BinaryVisitor::result_type</span>
+    <a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a>(<span class="bold"><strong>const</strong></span> BinaryVisitor &amp;, Variant1 &amp;, Variant2 &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor&gt;
+    <span class="type"><a href="../apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t">apply_visitor_delayed_t</a>&lt;Visitor&gt;</span> <a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a>(Visitor &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id894482"></a>Header &lt;<a href="../../../boost/variant/get.hpp" target="_top">boost/variant/get.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../bad_get.html" title="Class bad_get">bad_get</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type">U *</span> <a href="../get.html" title="Function get">get</a>(<a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; *);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type"><span class="bold"><strong>const</strong></span> U *</span> <a href="../get.html" title="Function get">get</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; *);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type">U &amp;</span> <a href="../get.html" title="Function get">get</a>(<a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp;);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U, <span class="bold"><strong>typename</strong></span> T1, <span class="bold"><strong>typename</strong></span> T2, ..., <span class="bold"><strong>typename</strong></span> TN&gt;
+    <span class="type"><span class="bold"><strong>const</strong></span> U &amp;</span> <a href="../get.html" title="Function get">get</a>(<span class="bold"><strong>const</strong></span> <a href="../boost/variant.html" title="Class template variant">variant</a>&lt;T1, T2, ..., TN&gt; &amp;);
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1561653"></a>Header &lt;<a href="../../../boost/variant/bad_visit.hpp" target="_top">boost/variant/bad_visit.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>class</strong></span> <a href="../bad_visit.html" title="Class bad_visit">bad_visit</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1216732"></a>Header &lt;<a href="../../../boost/variant/static_visitor.hpp" target="_top">boost/variant/static_visitor.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ResultType&gt; <span class="bold"><strong>class</strong></span> <a href="../static_visitor.html" title="Class template static_visitor">static_visitor</a>;
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="id1040401"></a>Header &lt;<a href="../../../boost/variant/visitor_ptr.hpp" target="_top">boost/variant/visitor_ptr.hpp</a>&gt;</h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> R&gt; <span class="bold"><strong>class</strong></span> <a href="../visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor_ptr_t</a>;
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="../visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor_ptr_t</a>&lt;T,R&gt;</span> <a href="../visitor_ptr.html" title="Function template visitor_ptr">visitor_ptr</a>(R (*)(T));
+}</pre>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="../BOOST_VARIANT_LIMIT_TYPES.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variant/refs.html b/doc/html/variant/refs.html
new file mode 100644
index 0000000000..325b743f4d
--- /dev/null
+++ b/doc/html/variant/refs.html
@@ -0,0 +1,129 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>References</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="prev" href="misc.html" title="Miscellaneous Notes">
+<link rel="next" href="../boostbook.html" title="Part II. The BoostBook Documentation Format">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="misc.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="../boostbook.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="variant.refs"></a>References</h3></div></div></div>
+<p><a name="variant.refs.abr00"></a><a href="http://boost.org/more/generic_exception_safety.html" target="_top">[Abr00]</a>
+ David Abrahams.
+ "Exception-Safety in Generic Components."
+ M. Jazayeri, R. Loos, D. Musser (eds.):
+ Generic Programming '98, Proc. of a Dagstuhl Seminar, Lecture Notes on Computer Science, Vol. 1766, pp. 69-79.
+ Springer-Verlag Berlin Heidelberg.
+ 2000.
+</p>
+<p><a name="variant.refs.abr01"></a><a href="http://boost.org/more/error_handling.html" target="_top">[Abr01]</a>
+ David Abrahams.
+ "Error and Exception Handling."
+ Boost technical article.
+ 2001-2003.
+</p>
+<p><a name="variant.refs.ale01a"></a><a href="http://www.oonumerics.org/tmpw01/alexandrescu.pdf" target="_top">[Ale01a]</a>
+ Andrei Alexandrescu.
+ "An Implementation of Discriminated Unions in C++."
+ <span class="emphasis"><em>OOPSLA 2001</em></span>, Second Workshop on C++ Template Programming.
+ Tampa Bay, 14 October 2001.
+</p>
+<p><a name="variant.refs.ale01b"></a><a href="http://www.moderncppdesign.com/book/main.html" target="_top">[Ale01b]</a>
+ Andrei Alexandrescu.
+ <span class="emphasis"><em>Modern C++ Design</em></span>.
+ Addison-Wesley, C++ In-Depth series.
+ 2001.
+</p>
+<p><a name="variant.refs.ale02"></a><a href="http://cuj.com/experts/2008/alexandr.htm" target="_top">[Ale02]</a>
+ Andrei Alexandrescu.
+ "Generic&lt;Programming&gt;: Discriminated Unions" series:
+ <a href="http://cuj.com/experts/2004/alexandr.htm" target="_top">Part 1</a>,
+ <a href="http://cuj.com/experts/2006/alexandr.htm" target="_top">Part 2</a>,
+ <a href="http://cuj.com/experts/2008/alexandr.htm" target="_top">Part 3</a>.
+ <span class="emphasis"><em>C/C++ Users Journal</em></span>.
+ 2002.
+</p>
+<p><a name="variant.refs.boo02"></a><a href="http://lists.boost.org/MailArchives/boost/msg30415.php" target="_top">[Boo02]</a>
+ Various Boost members.
+ "Proposal --- A type-safe union."
+ Boost public discussion.
+ 2002.
+</p>
+<p><a name="variant.refs.c++98"></a>
+ [C++98]
+ <span class="emphasis"><em>International Standard, Programming Languages &#8211; C++</em></span>.
+ ISO/IEC:14882.
+ 1998.
+</p>
+<p><a name="variant.refs.gof95"></a>
+ [GoF95]
+ Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
+ <span class="emphasis"><em>Design Patterns: Elements of Reusable Object-Oriented Software</em></span>.
+ Addison-Wesley.
+ 1995.
+</p>
+<p><a name="variant.refs.gre02"></a><a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?variant" target="_top">[Gre02]</a>
+ Douglas Gregor.
+ "BOOST_USER: variant."
+ Boost Wiki paper.
+ 2002.
+</p>
+<p><a name="variant.refs.gur02"></a><a href="../../../libs/mpl/index.html" target="_top">[Gur02]</a>
+ Aleksey Gurtovoy.
+ <span class="emphasis"><em>Boost Metaprogramming Library.</em></span>
+ 2002.
+</p>
+<p><a name="variant.refs.hen01"></a><a href="../any.html" title="Chapter 1. Boost.Any">[Hen01]</a>
+ Kevlin Henney.
+ <span class="emphasis"><em>Boost Any Library.</em></span>
+ 2001.
+</p>
+<p><a name="variant.refs.mk02"></a><a href="../../../libs/preprocessor/index.html" target="_top">[MK02]</a>
+ Paul Mensonides and Vesa Karvonen.
+ <span class="emphasis"><em>Boost Preprocessor Library.</em></span>
+ 2002.
+</p>
+<p><a name="variant.refs.mcd+01"></a>Type Traits
+ Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus, John Maddock, Jeremy Siek.
+ <span class="emphasis"><em>Boost Type Traits Library</em></span>.
+ 2001.
+</p>
+<p><a name="variant.refs.sut00"></a><a href="http://www.gotw.ca/publications/xc++.htm" target="_top">[Sut00]</a>
+ Herb Sutter.
+ <span class="emphasis"><em>Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions</em></span>.
+ Addison-Wesley, C++ In-Depth series.
+ 2000.
+</p>
+<p><a name="variant.refs.wil02"></a><a href="http://aspn.activestate.com/ASPN/Mail/Message/boost/1314807" target="_top">[Wil02]</a>
+ Anthony Williams.
+ Double-Storage Proposal.
+ 2002.
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="misc.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="../boostbook.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/variant/tutorial.html b/doc/html/variant/tutorial.html
new file mode 100644
index 0000000000..99fc34781d
--- /dev/null
+++ b/doc/html/variant/tutorial.html
@@ -0,0 +1,534 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="prev" href="../variant.html" title="Chapter 15. Boost.Variant">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../variant.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="reference.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="variant.tutorial"></a>Tutorial</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.basic">Basic Usage</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.advanced">Advanced Topics</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.tutorial.basic"></a>Basic Usage</h4></div></div></div>
+<p>A discriminated union container on some set of types is defined by
+ instantiating the <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code> class
+ template with the desired types. These types are called
+ <span class="bold"><strong>bounded types</strong></span> and are subject to the
+ requirements of the
+ <a href="reference.html#variant.concepts.bounded-type" title="BoundedType"><span class="emphasis"><em>BoundedType</em></span></a>
+ concept. Any number of bounded types may be specified, up to some
+ implementation-defined limit (see
+ <code class="computeroutput"><a href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a></code>).</p>
+<p>For example, the following declares a discriminated union container on
+ <code class="computeroutput">int</code> and <code class="computeroutput">std::string</code>:
+
+</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; int, std::string &gt; v;</pre>
+<p>By default, a <code class="computeroutput">variant</code> default-constructs its first
+ bounded type, so <code class="computeroutput">v</code> initially contains <code class="computeroutput">int(0)</code>. If
+ this is not desired, or if the first bounded type is not
+ default-constructible, a <code class="computeroutput">variant</code> can be constructed
+ directly from any value convertible to one of its bounded types. Similarly,
+ a <code class="computeroutput">variant</code> can be assigned any value convertible to one of its
+ bounded types, as demonstrated in the following:
+
+</p>
+<pre class="programlisting">v = "hello";</pre>
+<p>Now <code class="computeroutput">v</code> contains a <code class="computeroutput">std::string</code> equal to
+ <code class="computeroutput">"hello"</code>. We can demonstrate this by
+ <span class="bold"><strong>streaming</strong></span><code class="computeroutput">v</code> to standard
+ output:
+
+</p>
+<pre class="programlisting">std::cout &lt;&lt; v &lt;&lt; std::endl;</pre>
+<p>Usually though, we would like to do more with the content of a
+ <code class="computeroutput">variant</code> than streaming. Thus, we need some way to access the
+ contained value. There are two ways to accomplish this:
+ <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code>, which is safest
+ and very powerful, and
+ <code class="computeroutput"><a href="../get.html" title="Function get">get</a>&lt;T&gt;</code>, which is
+ sometimes more convenient to use.</p>
+<p>For instance, suppose we wanted to concatenate to the string contained
+ in <code class="computeroutput">v</code>. With <span class="bold"><strong>value retrieval</strong></span>
+ by <code class="computeroutput"><a href="../get.html" title="Function get">get</a></code>, this may be accomplished
+ quite simply, as seen in the following:
+
+</p>
+<pre class="programlisting">std::string&amp; str = <code class="computeroutput"><a href="../get.html" title="Function get">boost::get</a></code>&lt;std::string&gt;(v);
+str += " world! ";</pre>
+<p>As desired, the <code class="computeroutput">std::string</code> contained by <code class="computeroutput">v</code> now
+ is equal to <code class="computeroutput">"hello world! "</code>. Again, we can demonstrate this by
+ streaming <code class="computeroutput">v</code> to standard output:
+
+</p>
+<pre class="programlisting">std::cout &lt;&lt; v &lt;&lt; std::endl;</pre>
+<p>While use of <code class="computeroutput">get</code> is perfectly acceptable in this trivial
+ example, <code class="computeroutput">get</code> generally suffers from several significant
+ shortcomings. For instance, if we were to write a function accepting a
+ <code class="computeroutput">variant&lt;int, std::string&gt;</code>, we would not know whether
+ the passed <code class="computeroutput">variant</code> contained an <code class="computeroutput">int</code> or a
+ <code class="computeroutput">std::string</code>. If we insisted upon continued use of
+ <code class="computeroutput">get</code>, we would need to query the <code class="computeroutput">variant</code> for its
+ contained type. The following function, which "doubles" the
+ content of the given <code class="computeroutput">variant</code>, demonstrates this approach:
+
+</p>
+<pre class="programlisting">void times_two( boost::variant&lt; int, std::string &gt; &amp; operand )
+{
+ if ( int* pi = <code class="computeroutput"><a href="../get.html" title="Function get">boost::get</a></code>&lt;int&gt;( &amp;v ) )
+ *pi *= 2;
+ else if ( std::string* pstr = <code class="computeroutput"><a href="../get.html" title="Function get">boost::get</a></code>&lt;std::string&gt;( &amp;v ) )
+ *pstr += *pstr;
+}</pre>
+<p>However, such code is quite brittle, and without careful attention will
+ likely lead to the introduction of subtle logical errors detectable only at
+ runtime. For instance, consider if we wished to extend
+ <code class="computeroutput">times_two</code> to operate on a <code class="computeroutput">variant</code> with additional
+ bounded types. Specifically, let's add
+ <code class="computeroutput">std::complex&lt;double&gt;</code> to the set. Clearly, we would need
+ to at least change the function declaration:
+
+</p>
+<pre class="programlisting">void times_two( boost::variant&lt; int, std::string, std::complex&lt;double&gt; &gt; &amp; operand )
+{
+ // as above...?
+}</pre>
+<p>Of course, additional changes are required, for currently if the passed
+ <code class="computeroutput">variant</code> in fact contained a <code class="computeroutput">std::complex</code> value,
+ <code class="computeroutput">times_two</code> would silently return -- without any of the desired
+ side-effects and without any error. In this case, the fix is obvious. But in
+ more complicated programs, it could take considerable time to identify and
+ locate the error in the first place.</p>
+<p>Thus, real-world use of <code class="computeroutput">variant</code> typically demands an access
+ mechanism more robust than <code class="computeroutput">get</code>. For this reason,
+ <code class="computeroutput">variant</code> supports compile-time checked
+ <span class="bold"><strong>visitation</strong></span> via
+ <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code>. Visitation requires
+ that the programmer explicitly handle (or ignore) each bounded type. Failure
+ to do so results in a compile-time error.</p>
+<p>Visitation of a <code class="computeroutput">variant</code> requires a visitor object. The
+ following demonstrates one such implementation of a visitor implementating
+ behavior identical to <code class="computeroutput">times_two</code>:
+
+</p>
+<pre class="programlisting">class times_two_visitor
+ : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;&gt;
+{
+public:
+
+ void operator()(int &amp; i) const
+ {
+ i *= 2;
+ }
+
+ void operator()(std::string &amp; str) const
+ {
+ str += str;
+ }
+
+};</pre>
+<p>With the implementation of the above visitor, we can then apply it to
+ <code class="computeroutput">v</code>, as seen in the following:
+
+</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( times_two_visitor(), v );</pre>
+<p>As expected, the content of <code class="computeroutput">v</code> is now a
+ <code class="computeroutput">std::string</code> equal to <code class="computeroutput">"hello world! hello world! "</code>.
+ (We'll skip the verification this time.)</p>
+<p>In addition to enhanced robustness, visitation provides another
+ important advantage over <code class="computeroutput">get</code>: the ability to write generic
+ visitors. For instance, the following visitor will "double" the
+ content of <span class="emphasis"><em>any</em></span><code class="computeroutput">variant</code> (provided its
+ bounded types each support operator+=):
+
+</p>
+<pre class="programlisting">class times_two_generic
+ : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;&gt;
+{
+public:
+
+ template &lt;typename T&gt;
+ void operator()( T &amp; operand ) const
+ {
+ operand += operand;
+ }
+
+};</pre>
+<p>Again, <code class="computeroutput">apply_visitor</code> sets the wheels in motion:
+
+</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( times_two_generic(), v );</pre>
+<p>While the initial setup costs of visitation may exceed that required for
+ <code class="computeroutput">get</code>, the benefits quickly become significant. Before concluding
+ this section, we should explore one last benefit of visitation with
+ <code class="computeroutput">apply_visitor</code>:
+ <span class="bold"><strong>delayed visitation</strong></span>. Namely, a special form
+ of <code class="computeroutput">apply_visitor</code> is available that does not immediately apply
+ the given visitor to any <code class="computeroutput">variant</code> but rather returns a function
+ object that operates on any <code class="computeroutput">variant</code> given to it. This behavior
+ is particularly useful when operating on sequences of <code class="computeroutput">variant</code>
+ type, as the following demonstrates:
+
+</p>
+<pre class="programlisting">std::vector&lt; <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;int, std::string&gt; &gt; vec;
+vec.push_back( 21 );
+vec.push_back( "hello " );
+
+times_two_generic visitor;
+std::for_each(
+ vec.begin(), vec.end()
+ , <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>(visitor)
+ );</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="variant.tutorial.advanced"></a>Advanced Topics</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.preprocessor">Preprocessor macros</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.over-sequence">Using a type sequence to specify bounded types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.recursive">Recursive <code class="computeroutput">variant</code> types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.binary-visitation">Binary visitation</a></span></dt>
+</dl></div>
+<p>This section discusses several features of the library often required
+ for advanced uses of <code class="computeroutput">variant</code>. Unlike in the above section, each
+ feature presented below is largely independent of the others. Accordingly,
+ this section is not necessarily intended to be read linearly or in its
+ entirety.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.tutorial.preprocessor"></a>Preprocessor macros</h5></div></div></div>
+<p>While the <code class="computeroutput">variant</code> class template's variadic parameter
+ list greatly simplifies use for specific instantiations of the template,
+ it significantly complicates use for generic instantiations. For instance,
+ while it is immediately clear how one might write a function accepting a
+ specific <code class="computeroutput">variant</code> instantiation, say
+ <code class="computeroutput">variant&lt;int, std::string&gt;</code>, it is less clear how one
+ might write a function accepting any given <code class="computeroutput">variant</code>.</p>
+<p>Due to the lack of support for true variadic template parameter lists
+ in the C++98 standard, the preprocessor is needed. While the
+ <a href="../../../libs/preprocessor/index.html" target="_top">Preprocessor</a> library provides a general and
+ powerful solution, the need to repeat
+ <code class="computeroutput"><a href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a></code>
+ unnecessarily clutters otherwise simple code. Therefore, for common
+ use-cases, this library provides its own macro
+ <code class="computeroutput"><span class="bold"><strong><a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></strong></span></code>.</p>
+<p>This macro simplifies for the user the process of declaring
+ <code class="computeroutput">variant</code> types in function templates or explicit partial
+ specializations of class templates, as shown in the following:
+
+</p>
+<pre class="programlisting">// general cases
+template &lt;typename T&gt; void some_func(const T &amp;);
+template &lt;typename T&gt; class some_class;
+
+// function template overload
+template &lt;<code class="computeroutput"><a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></code>(typename T)&gt;
+void some_func(const <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;<code class="computeroutput"><a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></code>(T)&gt; &amp;);
+
+// explicit partial specialization
+template &lt;<code class="computeroutput"><a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></code>(typename T)&gt;
+class some_class&lt; <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;<code class="computeroutput"><a href="../BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</a></code>(T)&gt; &gt;;</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.tutorial.over-sequence"></a>Using a type sequence to specify bounded types</h5></div></div></div>
+<p>While convenient for typical uses, the <code class="computeroutput">variant</code> class
+ template's variadic template parameter list is limiting in two significant
+ dimensions. First, due to the lack of support for true variadic template
+ parameter lists in C++, the number of parameters must be limited to some
+ implementation-defined maximum (namely,
+ <code class="computeroutput"><a href="../BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</a></code>).
+ Second, the nature of parameter lists in general makes compile-time
+ manipulation of the lists excessively difficult.</p>
+<p>To solve these problems,
+ <code class="computeroutput">make_variant_over&lt; <span class="emphasis"><em>Sequence</em></span> &gt;</code>
+ exposes a <code class="computeroutput">variant</code> whose bounded types are the elements of
+ <code class="computeroutput">Sequence</code> (where <code class="computeroutput">Sequence</code> is any type fulfilling
+ the requirements of <a href="../../../libs/mpl/index.html" target="_top">MPL</a>'s
+ <span class="emphasis"><em>Sequence</em></span> concept). For instance,
+
+</p>
+<pre class="programlisting">typedef <code class="computeroutput">mpl::vector</code>&lt; std::string &gt; types_initial;
+typedef <code class="computeroutput">mpl::push_front</code>&lt; types_initial, int &gt;::type types;
+
+<code class="computeroutput"><a href="../make_variant_over.html" title="Class template make_variant_over">boost::make_variant_over</a></code>&lt; types &gt;::type v1;</pre>
+<p>
+
+ behaves equivalently to
+
+</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; int, std::string &gt; v2;</pre>
+<p><span class="bold"><strong>Portability</strong></span>: Unfortunately, due to
+ standard conformance issues in several compilers,
+ <code class="computeroutput">make_variant_over</code> is not universally available. On these
+ compilers the library indicates its lack of support for the syntax via the
+ definition of the preprocessor symbol
+ <code class="computeroutput"><a href="../id1351704.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</a></code>.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.tutorial.recursive"></a>Recursive <code class="computeroutput">variant</code> types</h5></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.recursive.recursive-wrapper">Recursive types with <code class="computeroutput">recursive_wrapper</code></a></span></dt>
+<dt><span class="section"><a href="tutorial.html#variant.tutorial.recursive.recursive-variant">Recursive types with <code class="computeroutput">make_recursive_variant</code></a></span></dt>
+</dl></div>
+<p>Recursive types facilitate the construction of complex semantics from
+ simple syntax. For instance, nearly every programmer is familiar with the
+ canonical definition of a linked list implementation, whose simple
+ definition allows sequences of unlimited length:
+
+</p>
+<pre class="programlisting">template &lt;typename T&gt;
+struct list_node
+{
+ T data;
+ list_node * next;
+};</pre>
+<p>The nature of <code class="computeroutput">variant</code> as a generic class template
+ unfortunately precludes the straightforward construction of recursive
+ <code class="computeroutput">variant</code> types. Consider the following attempt to construct
+ a structure for simple mathematical expressions:
+
+ </p>
+<pre class="programlisting">struct add;
+struct sub;
+template &lt;typename OpTag&gt; struct binary_op;
+
+typedef <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;
+ int
+ , binary_op&lt;add&gt;
+ , binary_op&lt;sub&gt;
+ &gt; expression;
+
+template &lt;typename OpTag&gt;
+struct binary_op
+{
+ expression left; // <span class="emphasis"><em>variant instantiated here...</em></span>
+ expression right;
+
+ binary_op( const expression &amp; lhs, const expression &amp; rhs )
+ : left(lhs), right(rhs)
+ {
+ }
+
+}; // <span class="emphasis"><em>...but binary_op not complete until here!</em></span></pre>
+<p>While well-intentioned, the above approach will not compile because
+ <code class="computeroutput">binary_op</code> is still incomplete when the <code class="computeroutput">variant</code>
+ type <code class="computeroutput">expression</code> is instantiated. Further, the approach suffers
+ from a more significant logical flaw: even if C++ syntax were different
+ such that the above example could be made to "work,"
+ <code class="computeroutput">expression</code> would need to be of infinite size, which is
+ clearly impossible.</p>
+<p>To overcome these difficulties, <code class="computeroutput">variant</code> includes special
+ support for the
+ <code class="computeroutput"><a href="../recursive_wrapper.html" title="Class template recursive_wrapper">boost::recursive_wrapper</a></code> class
+ template, which breaks the circular dependency at the heart of these
+ problems. Further,
+ <code class="computeroutput"><a href="../make_recursive_variant.html" title="Class template make_recursive_variant">boost::make_recursive_variant</a></code> provides
+ a more convenient syntax for declaring recursive <code class="computeroutput">variant</code>
+ types. Tutorials for use of these facilities is described in
+ <a href="tutorial.html#variant.tutorial.recursive.recursive-wrapper" title="Recursive types with recursive_wrapper">the section called &#8220;Recursive types with <code class="computeroutput">recursive_wrapper</code>&#8221;</a> and
+ <a href="tutorial.html#variant.tutorial.recursive.recursive-variant" title="Recursive types with make_recursive_variant">the section called &#8220;Recursive types with <code class="computeroutput">make_recursive_variant</code>&#8221;</a>.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="variant.tutorial.recursive.recursive-wrapper"></a>Recursive types with <code class="computeroutput">recursive_wrapper</code></h6></div></div></div>
+<p>The following example demonstrates how <code class="computeroutput">recursive_wrapper</code>
+ could be used to solve the problem presented in
+ <a href="tutorial.html#variant.tutorial.recursive" title="Recursive variant types">the section called &#8220;Recursive <code class="computeroutput">variant</code> types&#8221;</a>:
+
+ </p>
+<pre class="programlisting">typedef <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;
+ int
+ , <code class="computeroutput"><a href="../recursive_wrapper.html" title="Class template recursive_wrapper">boost::recursive_wrapper</a></code>&lt; binary_op&lt;add&gt; &gt;
+ , <code class="computeroutput"><a href="../recursive_wrapper.html" title="Class template recursive_wrapper">boost::recursive_wrapper</a></code>&lt; binary_op&lt;sub&gt; &gt;
+ &gt; expression;</pre>
+<p>Because <code class="computeroutput">variant</code> provides special support for
+ <code class="computeroutput">recursive_wrapper</code>, clients may treat the resultant
+ <code class="computeroutput">variant</code> as though the wrapper were not present. This is seen
+ in the implementation of the following visitor, which calculates the value
+ of an <code class="computeroutput">expression</code> without any reference to
+ <code class="computeroutput">recursive_wrapper</code>:
+
+ </p>
+<pre class="programlisting">class calculator : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor&lt;int&gt;</a></code>
+{
+public:
+
+ int operator()(int value) const
+ {
+ return value;
+ }
+
+ int operator()(const binary_op&lt;add&gt; &amp; binary) const
+ {
+ return <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( calculator(), binary.left )
+ + <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( calculator(), binary.right );
+ }
+
+ int operator()(const binary_op&lt;sub&gt; &amp; binary) const
+ {
+ return <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( calculator(), binary.left )
+ - <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( calculator(), binary.right );
+ }
+
+};</pre>
+<p>Finally, we can demonstrate <code class="computeroutput">expression</code> in action:
+
+ </p>
+<pre class="programlisting">void f()
+{
+ // result = ((7-3)+8) = 12
+ expression result(
+ binary_op&lt;add&gt;(
+ binary_op&lt;sub&gt;(7,3)
+ , 8
+ )
+ );
+
+ assert( <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>(calculator(),result) == 12 );
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="variant.tutorial.recursive.recursive-variant"></a>Recursive types with <code class="computeroutput">make_recursive_variant</code></h6></div></div></div>
+<p>For some applications of recursive <code class="computeroutput">variant</code> types, a user
+ may be able to sacrifice the full flexibility of using
+ <code class="computeroutput">recursive_wrapper</code> with <code class="computeroutput">variant</code> for the following
+ convenient syntax:
+
+</p>
+<pre class="programlisting">typedef <code class="computeroutput"><a href="../make_recursive_variant.html" title="Class template make_recursive_variant">boost::make_recursive_variant</a></code>&lt;
+ int
+ , std::vector&lt; boost::recursive_variant_ &gt;
+ &gt;::type int_tree_t;</pre>
+<p>Use of the resultant <code class="computeroutput">variant</code> type is as expected:
+
+</p>
+<pre class="programlisting">std::vector&lt; int_tree_t &gt; subresult;
+subresult.push_back(3);
+subresult.push_back(5);
+
+std::vector&lt; int_tree_t &gt; result;
+result.push_back(1);
+result.push_back(subresult);
+result.push_back(7);
+
+int_tree_t var(result);</pre>
+<p>To be clear, one might represent the resultant content of
+ <code class="computeroutput">var</code> as <code class="computeroutput">( 1 ( 3 5 ) 7 )</code>.</p>
+<p>Finally, note that a type sequence can be used to specify the bounded
+ types of a recursive <code class="computeroutput">variant</code> via the use of
+ <code class="computeroutput"><a href="../id1151195.html" title="Class template make_recursive_variant_over">boost::make_recursive_variant_over</a></code>,
+ whose semantics are the same as <code class="computeroutput">make_variant_over</code> (which is
+ described in <a href="tutorial.html#variant.tutorial.over-sequence" title="Using a type sequence to specify bounded types">the section called &#8220;Using a type sequence to specify bounded types&#8221;</a>).</p>
+<p><span class="bold"><strong>Portability</strong></span>: Unfortunately, due to
+ standard conformance issues in several compilers,
+ <code class="computeroutput">make_recursive_variant</code> is not universally supported. On these
+ compilers the library indicates its lack of support via the definition
+ of the preprocessor symbol
+ <code class="computeroutput"><a href="../id696758.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</a></code>.
+ Thus, unless working with highly-conformant compilers, maximum portability
+ will be achieved by instead using <code class="computeroutput">recursive_wrapper</code>, as
+ described in
+ <a href="tutorial.html#variant.tutorial.recursive.recursive-wrapper" title="Recursive types with recursive_wrapper">the section called &#8220;Recursive types with <code class="computeroutput">recursive_wrapper</code>&#8221;</a>.</p>
+</div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="variant.tutorial.binary-visitation"></a>Binary visitation</h5></div></div></div>
+<p>As the tutorial above demonstrates, visitation is a powerful mechanism
+ for manipulating <code class="computeroutput">variant</code> content. Binary visitation further
+ extends the power and flexibility of visitation by allowing simultaneous
+ visitation of the content of two different <code class="computeroutput">variant</code>
+ objects.</p>
+<p>Notably this feature requires that binary visitors are incompatible
+ with the visitor objects discussed in the tutorial above, as they must
+ operate on two arguments. The following demonstrates the implementation of
+ a binary visitor:
+
+</p>
+<pre class="programlisting">class are_strict_equals
+ : public <code class="computeroutput"><a href="../static_visitor.html" title="Class template static_visitor">boost::static_visitor</a></code>&lt;bool&gt;
+{
+public:
+
+ template &lt;typename T, typename U&gt;
+ bool operator()( const T &amp;, const U &amp; ) const
+ {
+ return false; // cannot compare different types
+ }
+
+ template &lt;typename T&gt;
+ bool operator()( const T &amp; lhs, const T &amp; rhs ) const
+ {
+ return lhs == rhs;
+ }
+
+};</pre>
+<p>As expected, the visitor is applied to two <code class="computeroutput">variant</code>
+ arguments by means of <code class="computeroutput">apply_visitor</code>:
+
+</p>
+<pre class="programlisting"><code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; int, std::string &gt; v1( "hello" );
+
+<code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; double, std::string &gt; v2( "hello" );
+assert( <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>(are_strict_equals(), v1, v2) );
+
+<code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt; int, const char * &gt; v3( "hello" );
+assert( !<code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>(are_strict_equals(), v1, v3) );</pre>
+<p>Finally, we must note that the function object returned from the
+ "delayed" form of
+ <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">apply_visitor</a></code> also supports
+ binary visitation, as the following demonstrates:
+
+</p>
+<pre class="programlisting">typedef <code class="computeroutput"><a href="../boost/variant.html" title="Class template variant">boost::variant</a></code>&lt;double, std::string&gt; my_variant;
+
+std::vector&lt; my_variant &gt; seq1;
+seq1.push_back("pi is close to ");
+seq1.push_back(3.14);
+
+std::list&lt; my_variant &gt; seq2;
+seq2.push_back("pi is close to ");
+seq2.push_back(3.14);
+
+are_strict_equals visitor;
+assert( std::equal(
+ v1.begin(), v1.end(), v2.begin()
+ , <code class="computeroutput"><a href="../apply_visitor.html" title="Function apply_visitor">boost::apply_visitor</a></code>( visitor )
+ ) );</pre>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../variant.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../variant.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="reference.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/visit_each.html b/doc/html/visit_each.html
new file mode 100644
index 0000000000..ea5e155699
--- /dev/null
+++ b/doc/html/visit_each.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template visit_each</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="signals/reference.html#id1145207" title="Header &lt;boost/visit_each.hpp&gt;">
+<link rel="prev" href="scoped_connection.html" title="Class scoped_connection">
+<link rel="next" href="last_value.html" title="Class template last_value">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="scoped_connection.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1145207"><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="last_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="visit_each"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template visit_each</span></h2>
+<p>boost::visit_each &#8212; Allow limited exploration of class members.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Visitor, <span class="bold"><strong>typename</strong></span> T&gt;
+  <span class="type"><span class="bold"><strong>void</strong></span></span> visit_each(<span class="bold"><strong>const</strong></span> Visitor&amp; visitor, <span class="bold"><strong>const</strong></span> T&amp; t, <span class="bold"><strong>int</strong></span> );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1286644"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a href="visit_each.html" title="Function template visit_each">visit_each</a></code> mechanism
+ allows a visitor to be applied to every subobject in a given
+ object. It is used by the Signals library to discover
+ <code class="computeroutput"><a href="trackable.html" title="Class trackable">signals::trackable</a></code> objects within a
+ function object, but other uses may surface if used
+ universally (e.g., conservative garbage collection). To fit
+ within the <code class="computeroutput"><a href="visit_each.html" title="Function template visit_each">visit_each</a></code> framework,
+ a <code class="computeroutput"><a href="visit_each.html" title="Function template visit_each">visit_each</a></code> overload must be
+ supplied for each object type. </p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ <code class="computeroutput">visitor(t)</code>, and for
+ every subobject <code class="computeroutput">x</code> of
+ <code class="computeroutput">t</code>:
+ <div class="itemizedlist"><ul type="disc">
+<li><p>If <code class="computeroutput">x</code> is a reference, <code class="computeroutput">visit_each(visitor, <a href="reference_wrapper.html#id1071532">ref</a>(x), 0)</code></p></li>
+<li><p>Otherwise, <code class="computeroutput">visit_each(visitor, x, 0)</code></p></li>
+</ul></div><br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Notes</span></b>:
+
+ The third parameter is
+ <code class="computeroutput">long</code> for the fallback version
+ of <a href="visit_each.html" title="Function template visit_each">visit_each</a> and the argument
+ supplied to this third paramter must always be 0. The third
+ parameter is an artifact of the widespread lack of proper
+ function template ordering, and will be removed in the future.<p>Library authors will be expected to add additional
+ overloads that specialize the T argument for their classes, so
+ that subobjects can be visited.</p><p>Calls to visit_each are required to be unqualified, to
+ enable argument-dependent lookup.</p></p>
+</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 © 2001-2004 Douglas Gregor</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="scoped_connection.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="signals/reference.html#id1145207"><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="last_value.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/visitor_ptr.html b/doc/html/visitor_ptr.html
new file mode 100644
index 0000000000..84676a0cb9
--- /dev/null
+++ b/doc/html/visitor_ptr.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function template visitor_ptr</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1040401" title="Header &lt;boost/variant/visitor_ptr.hpp&gt;">
+<link rel="prev" href="visitor_ptr_t.html" title="Class template visitor_ptr_t">
+<link rel="next" href="variant/design.html" title="Design Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="visitor_ptr_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1040401"><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="variant/design.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="visitor_ptr"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function template visitor_ptr</span></h2>
+<p>boost::visitor_ptr &#8212; <p>Returns a visitor object that adapts function pointers for
+ use as a static visitor.</p></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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> R, <span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor_ptr_t</a>&lt;T,R&gt;</span> visitor_ptr(R (*)(T) );</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1670628"></a><h2>Description</h2>
+<p>Constructs and returns a
+ <code class="computeroutput"><a href="visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor_ptr_t</a></code> adaptor over the
+ given function.</p>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ Returns a <code class="computeroutput"><a href="visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor_ptr_t</a></code>
+ visitor object that, when applied, invokes the given
+ function.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ Will not throw. (Note, however, that the returned
+ <a href="visitor_ptr_t.html" title="Class template visitor_ptr_t">visitor object</a> may
+ throw when applied.)</p>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="visitor_ptr_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1040401"><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="variant/design.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/visitor_ptr_t.html b/doc/html/visitor_ptr_t.html
new file mode 100644
index 0000000000..d1fa4dc4e9
--- /dev/null
+++ b/doc/html/visitor_ptr_t.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template visitor_ptr_t</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="variant/reference.html#id1040401" title="Header &lt;boost/variant/visitor_ptr.hpp&gt;">
+<link rel="prev" href="static_visitor.html" title="Class template static_visitor">
+<link rel="next" href="visitor_ptr.html" title="Function template visitor_ptr">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static_visitor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1040401"><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="visitor_ptr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="visitor_ptr_t"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template visitor_ptr_t</span></h2>
+<p>boost::visitor_ptr_t &#8212; Adapts a function pointer for use as a static visitor.</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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> R&gt;
+<span class="bold"><strong>class</strong></span> visitor_ptr_t : <span class="bold"><strong>public</strong></span> <a href="static_visitor.html" title="Class template static_visitor">static_visitor</a>&lt;R&gt; {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="visitor_ptr_t.html#visitor_ptr_tconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <span class="bold"><strong>explicit</strong></span> <a href="visitor_ptr_t.html#id1286427-bb">visitor_ptr_t</a>(R (*)(T));
+
+  <span class="emphasis"><em>// <a href="visitor_ptr_t.html#id977776-bb">static visitor interfaces</a></em></span>
+  <span class="type">R</span> <a href="visitor_ptr_t.html#id757591-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="emphasis"><em>unspecified-forwarding-type</em></span>);
+  <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a href="visitor_ptr_t.html#id1215974-bb"><span class="bold"><strong>operator</strong></span>()</a>(<span class="bold"><strong>const</strong></span> U&amp;);
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1670360"></a><h2>Description</h2>
+<p>Adapts the function given at construction for use as a
+ <a href="variant/reference.html#variant.concepts.static-visitor" title="StaticVisitor">static visitor</a>
+ of type <code class="computeroutput">T</code> with result type <code class="computeroutput">R</code>.</p>
+<div class="refsect2" lang="en">
+<a name="id1670386"></a><h3>
+<a name="visitor_ptr_tconstruct-copy-destruct"></a><code class="computeroutput">visitor_ptr_t</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="bold"><strong>explicit</strong></span> <a name="id1286427-bb"></a>visitor_ptr_t(R (*)(T) );</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ Constructs the visitor with the given function.</p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1670436"></a><h3>
+<a name="id977776-bb"></a><code class="computeroutput">visitor_ptr_t</code> static visitor interfaces</h3>
+<div class="orderedlist"><ol type="1"><li>
+<p><a name="id940336-bb"></a></p>
+<pre class="literallayout"><span class="type">R</span> <a name="id757591-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="emphasis"><em>unspecified-forwarding-type</em></span> operand);
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> U&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id1215974-bb"></a><span class="bold"><strong>operator</strong></span>()(<span class="bold"><strong>const</strong></span> U&amp; );</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Effects</span></b>:
+
+ If passed a value or reference of type
+ <code class="computeroutput">T</code>, it invokes the function given at
+ construction, appropriately forwarding
+ <code class="computeroutput">operand</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ Returns the result of the function invocation.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Throws</span></b>:
+
+ The overload taking a value or reference of type
+ <code class="computeroutput">T</code> throws if the invoked function throws.
+ The overload taking all other values <span class="emphasis"><em>always</em></span>
+ throws <code class="computeroutput"><a href="bad_visit.html" title="Class bad_visit">bad_visit</a></code>.</p>
+</li></ol></div>
+</div>
+</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 © 2002, 2003 Eric Friedman, Itay Maman</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="static_visitor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="variant/reference.html#id1040401"><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="visitor_ptr.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/week_functor.html b/doc/html/week_functor.html
new file mode 100644
index 0000000000..2ec3203011
--- /dev/null
+++ b/doc/html/week_functor.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template week_functor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id797437" title="Header &lt;boost/date_time/adjust_functors.hpp&gt;">
+<link rel="prev" href="month_functor.html" title="Class template month_functor">
+<link rel="next" href="year_functor.html" title="Class template year_functor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="month_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="year_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="week_functor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template week_functor</span></h2>
+<p>boost::date_time::week_functor &#8212; Functor to iterate a over weeks. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> week_functor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type calendar_type;
+
+  <span class="emphasis"><em>// <a href="week_functor.html#week_functorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="week_functor.html#id998496-bb">week_functor</a>(<span class="bold"><strong>int</strong></span>);
+
+  <span class="emphasis"><em>// <a href="week_functor.html#id927015-bb">public member functions</a></em></span>
+  <span class="type">duration_type</span> <a href="week_functor.html#id929305-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="week_functor.html#id962785-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1038778"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1038781"></a><h3>
+<a name="week_functorconstruct-copy-destruct"></a><code class="computeroutput">week_functor</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id998496-bb"></a>week_functor(<span class="bold"><strong>int</strong></span> f);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1038820"></a><h3>
+<a name="id927015-bb"></a><code class="computeroutput">week_functor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id929305-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id962785-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="month_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="year_functor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/weeks_duration.html b/doc/html/weeks_duration.html
new file mode 100644
index 0000000000..80717bcf5b
--- /dev/null
+++ b/doc/html/weeks_duration.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template weeks_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798566" title="Header &lt;boost/date_time/date_duration_types.hpp&gt;">
+<link rel="prev" href="duration_traits_adapted.html" title="Struct duration_traits_adapted">
+<link rel="next" href="months_duration.html" title="Class template months_duration">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_traits_adapted.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="months_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="weeks_duration"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template weeks_duration</span></h2>
+<p>boost::date_time::weeks_duration &#8212; Additional duration type that represents a number of n*7 days. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> duration_config&gt;
+<span class="bold"><strong>class</strong></span> weeks_duration
+ : : <span class="bold"><strong>public</strong></span> boost::date_time::date_duration&lt; duration_config &gt;
+{
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="weeks_duration.html#weeks_durationconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="weeks_duration.html#id872235-bb">weeks_duration</a>(<span class="bold"><strong>typename</strong></span> duration_config::impl_type);
+  <a href="weeks_duration.html#id1038036-bb">weeks_duration</a>(special_values);
+
+  <span class="emphasis"><em>// <a href="weeks_duration.html#id1110329-bb">public member functions</a></em></span>
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1043647"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1043650"></a><h3>
+<a name="weeks_durationconstruct-copy-destruct"></a><code class="computeroutput">weeks_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id872235-bb"></a>weeks_duration(<span class="bold"><strong>typename</strong></span> duration_config::impl_type w);</pre></li>
+<li><pre class="literallayout"><a name="id1038036-bb"></a>weeks_duration(special_values sv);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1043704"></a><h3>
+<a name="id1110329-bb"></a><code class="computeroutput">weeks_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="duration_traits_adapted.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="months_duration.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/who_s_using_boost_.html b/doc/html/who_s_using_boost_.html
index 212634f4a6..3be1fc7a5b 100644
--- a/doc/html/who_s_using_boost_.html
+++ b/doc/html/who_s_using_boost_.html
@@ -1,11 +1,80 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
- <head>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/who_s_using_boost_.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/who_s_using_boost_.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/who_s_using_boost_.html</a>
- </body>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Who's Using Boost?</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="index.html" title="The Boost C++ Libraries">
+<link rel="prev" href="bbv2/arch/targets.html" title="Targets">
+<link rel="next" href="who_s_using_boost_/shrink.html" title=" Shrink Wrapped Boost">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bbv2/arch/targets.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="who_s_using_boost_/shrink.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="article" lang="en">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="who_s_using_boost_"></a>Who's Using Boost?</h2></div>
+<div><p class="copyright">Copyright © 2005 Various Authors</p></div>
+<div><div class="legalnotice">
+<a name="id1710147"></a><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" target="_top">
+ http://www.boost.org/LICENSE_1_0.txt
+ </a>)
+
+ </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="who_s_using_boost_.html#who_s_using_boost_.intro"></a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/shrink.html"> Shrink Wrapped Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/open.html"> Open Source Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/inhouse.html"> In House Boost</a></span></dt>
+<dt><span class="section"><a href="who_s_using_boost_/submit.html"> Submissions</a></span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"></div>
+<p>
+Open source isn't just for nerds and researchers. Real world programming challenges,
+irrespective of whether they are open or closed source, can benefit enormously from
+the thought and experience that has gone into the Boost software libraries. Put simply,
+for any given problem for which Boost provides a solution, Boost will strive to provide
+the best solution possible. It's up to you to decide whether we've achieved that, but
+as these pages will testify, many other developers have found our solutions to be the
+best for them.</p>
+<p><span class="emphasis"><em>Disclaimer:</em></span> Boost's developers try to ensure that the
+information on these pages is correct, but from time to time inadvertent
+mistakes are bound to occur:
+if you would like an entry in these pages to be removed or corrected please contact
+the <a href="mailto:boost-owner@lists.boost.org" target="_top">Boost Moderators</a>.</p>
+</div>
+</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 23, 2005 at 11:38:28 GMT</p></small></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bbv2/arch/targets.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="who_s_using_boost_/shrink.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
</html>
-
diff --git a/doc/html/who_s_using_boost_/inhouse.html b/doc/html/who_s_using_boost_/inhouse.html
new file mode 100644
index 0000000000..07fdac9209
--- /dev/null
+++ b/doc/html/who_s_using_boost_/inhouse.html
@@ -0,0 +1,161 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> In House Boost</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../who_s_using_boost_.html" title="Who's Using Boost?">
+<link rel="prev" href="open.html" title=" Open Source Boost">
+<link rel="next" href="submit.html" title=" Submissions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="open.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="submit.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="who_s_using_boost_.inhouse"></a> In House Boost</h2></div></div></div>
+<p>
+Whether you're a government department, an internet startup, or a specialist consultancy, in-house
+developement using the Boost Libraries can significantly shorten your
+development cycles.</p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>LiquidNet</strong></span><br><br><a href="http://www.liquidnet.com/" target="_top">LiquidNet</a> is Americas number one electronic
+marketplace for large block trading, and the 5th fastest growing company
+according to Inc Magazine. <br><br>
+
+"<span class="emphasis"><em>Boost Libraries most used, in order of importance:<br><a href="../../../libs/smart_ptr/index.html" target="_top">shared_ptr</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/python/doc/index.html" target="_top">boost.python</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">lexical_cast</a>,
+<a href="../../../libs/optional/index.html" target="_top">optional</a>,
+<a href="../../../libs/any/index.html" target="_top">any</a> and
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a></em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>MetOcean Engineers</strong></span><br><br><a href="http://www.metoceanengineers.com" target="_top">MetOcean Engineers</a>
+are a leading consultancy providing oceanographic and meteorological
+services in support of coastal and ocean engineering and environmental
+protection. Core activities encompass: oceanographic measurements;
+metocean monitoring systems; coastal and ocean engineering; environmental
+consultancy; data management.<br><br>
+
+Boost Libraries currently in use:
+<a href="../../../libs/any/index.html" target="_top">boost.any</a>,
+<a href="../../../libs/assign/index.html" target="_top">boost.assign</a>,
+<a href="../../../libs/bind/index.html" target="_top">boost.bind</a>,
+<a href="../../../libs/date_time/index.html" target="_top">boost.date_time</a>,
+<a href="../../../libs/iterator/index.html" target="_top">boost.iterators</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">boost.lexical_cast</a>,
+<a href="../../../libs/mpl/index.html" target="_top">boost.mpl</a>,
+<a href="../../../libs/spirit/phoenix/index.html" target="_top">boost.phoenix</a>,
+<a href="../../../libs/program_options/index.html" target="_top">boost.program_options</a>,
+<a href="../../../libs/bind/ref.html" target="_top">boost.ref</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">boost.smart_ptr</a>,
+<a href="../../../libs/spirit/index.html" target="_top">boost.spirit</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">boost.string_algo</a>,
+<a href="../../../doc/html/tribool.html" target="_top">boost.tribool</a> and
+<a href="../../../libs/variant/index.html" target="_top">boost.variant</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>TeraView Ltd</strong></span><br><br><a href="http://www.teraview.com" target="_top">TeraView Ltd</a> develop terahertz based systems
+for a variety of applications
+including spectroscopy and imaging.<br><br><span class="emphasis"><em>"We use:
+<a href="../../../libs/thread/index.html" target="_top">thread</a>,
+<a href="../../../libs/filesystem/index.html" target="_top">filesystem</a>,
+<a href="../../../libs/date_time/index.html" target="_top">date_time</a>,
+<a href="../../../libs/serialization/index.html" target="_top">serialization</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/iterator/index.html" target="_top">iterator</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">lexical_cast</a>,
+<a href="../../../libs/format/index.html" target="_top">format</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a>,
+<a href="../../../libs/any/index.html" target="_top">any</a> and
+<a href="../../../libs/optional/index.html" target="_top">optional</a>"</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>NPC International</strong></span><br><br>
+
+With about 800 restaurants, <a href="http://www.npcinternational.com" target="_top">NPC International</a>
+is the world's largest Pizza Hut franchisee.<br><br><span class="emphasis"><em>"We make extensive use of boost in our internally developed point of sale,
+restaurant management, communications, and accounting systems.
+We use the following libraries in approximate order of frequency of use:
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/optional/index.html" target="_top">optional</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">shared_ptr</a>,
+<a href="../../../libs/date_time/index.html" target="_top">date_time</a>,
+<a href="../../../libs/thread/index.html" target="_top">thread</a>,
+<a href="../../../libs/lambda/index.html" target="_top">lambda</a>,
+<a href="../../../libs/type_traits/index.html" target="_top">type_traits</a>,
+<a href="../../../libs/mpl/index.html" target="_top">mpl</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a>,
+<a href="../../../libs/utility/enable_if.html" target="_top">enable_if</a>,
+<a href="../../../libs/variant/index.html" target="_top">variant</a>,
+<a href="../../../libs/spirit/index.html" target="_top">spirit</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">string_algo</a>,
+<a href="../../../libs/preprocessor/index.html" target="_top">preprocessor</a>,
+<a href="../../../libs/filesystem/index.html" target="_top">filesystem</a>,
+<a href="../../../libs/utility/operators.htm" target="_top">operator</a>,
+<a href="../../../libs/iterator/index.html" target="_top">iterators</a> and
+<a href="../../../libs/tokenizer/index.html" target="_top">tokenizer</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Archelon LLC</strong></span><br><br><a href="http://www.archelon-us.com" target="_top">Archelon LLC</a> is a global securities firm
+headquartered in Chicago. We actively trade equities, futures and
+derivatives in both electronic and floor-based markets. Archelon is
+one of the highest volume market makers on EUREX and a leading
+U.S. option market maker focusing on the most active securities.<br><br><span class="emphasis"><em>"We use:
+<a href="../../../libs/any/index.html" target="_top">any</a>,
+<a href="../../../libs/array/index.html" target="_top">array</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/date_time/index.html" target="_top">date_time</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">lexical_cast</a>,
+<a href="../../../libs/optional/index.html" target="_top">optional</a>,
+<a href="../../../libs/rational/index.html" target="_top">rational</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/signals/index.html" target="_top">signals</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/tokenizer/index.html" target="_top">tokenizer</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a> and
+<a href="../../../libs/utility/index.html" target="_top">utility</a>."</em></span>
+</td></tr></tbody>
+</table></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 © 2005 Various Authors</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="open.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="submit.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/who_s_using_boost_/open.html b/doc/html/who_s_using_boost_/open.html
new file mode 100644
index 0000000000..594463e5b9
--- /dev/null
+++ b/doc/html/who_s_using_boost_/open.html
@@ -0,0 +1,385 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Open Source Boost</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../who_s_using_boost_.html" title="Who's Using Boost?">
+<link rel="prev" href="shrink.html" title=" Shrink Wrapped Boost">
+<link rel="next" href="inhouse.html" title=" In House Boost">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shrink.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="inhouse.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="who_s_using_boost_.open"></a> Open Source Boost</h2></div></div></div>
+<p>
+Boost is used in a variety of Open Source Projects, both applications and libraries.
+Indeed many Open Source libraries developed around Boost have in the past been judged
+of high enough quality to be absorbed
+into the main Boost source tree, a process that will no doubt continue into the future.
+Others are in highly specialized niche markets, ranging from probability theory to
+astronomy, via mass spectroscopy: whatever your field of interest you'll find
+something of value in Boost.</p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Adobe Software Libraries</strong></span><br><br>
+
+The <a href="http://opensource.adobe.com/" target="_top">Adobe Software Libraries</a> provide
+components for modeling the human interface appearance and behavior
+in a software application. The Adobe Software Libraries depend on many
+parts of Boost including <a href="../../../libs/any/index.html" target="_top">Any</a>,
+<a href="../../../libs/bind/index.html" target="_top">Bind</a>, <a href="../../../libs/function/index.html" target="_top">Function</a>,
+<a href="../../../libs/mpl/index.html" target="_top">MPL</a>, <a href="../../../libs/utility/operators.htm" target="_top">Operators</a>,
+<a href="../../../libs/range/index.html" target="_top">Range</a>, <a href="../../../libs/static_assert/index.html" target="_top">Static Assertions</a>,
+<a href="../../../libs/thread/index.html" target="_top">Threads</a>, and <a href="../../../libs/type_traits/index.html" target="_top">Type Traits</a>.<br><br>
+
+Currently Boost and the Adobe Software Libraries are in use in around 30 Adobe products.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Lyx Document Editor</strong></span><br><br><a href="http://www.lyx.org/" target="_top">The Lyx Document Editor</a>
+is an advanced open source document processor that encourages an
+approach to writing based on the structure of your documents,
+not their appearance. LyX produces high quality, professional output,
+using LaTeX, an industrial strength typesetting engine.<br><br>
+
+Lyx uses many parts of Boost, including <a href="../../../libs/array/index.html" target="_top">Array</a>,
+<a href="../../../libs/bind/index.html" target="_top">Bind</a>, <a href="../../../libs/regex/index.html" target="_top">Regex</a>,
+<a href="../../../libs/type_traits/index.html" target="_top">Type Traits</a>,
+<a href="../../../libs/function/index.html" target="_top">Function</a>,
+and <a href="../../../libs/signals/index.html" target="_top">Signals</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>CGAL</strong></span><br><br><a href="http://www.cgal.org/" target="_top">CGAL</a> is the Computational Geometry Algorithms Library,
+ an open source C++ library providing generic components
+ such as triangulations, convex hulls algorithms, boolean
+ operations of polygons and many other things.
+ <span class="emphasis"><em>"We currently use the following Boost libraries :
+ <a href="../../../libs/utility/operators.htm" target="_top">operators</a>,
+ <a href="../../../libs/iterator/index.html" target="_top">iterators</a>,
+ <a href="../../../libs/tuple/index.html" target="_top">tuples</a>,
+ <a href="../../../libs/concept_check/index.html" target="_top">concept check</a>,
+ <a href="../../../libs/mpl/index.html" target="_top">mpl</a>,
+ <a href="../../../libs/bind/index.html" target="_top">bind</a>,
+ <a href="../../../libs/optional/index.html" target="_top">optional</a> and
+ <a href="../../../libs/smart_ptr/index.html" target="_top">smart pointers</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>ALPS</strong></span><br><br><a href="http://alps.comp-phys.org/" target="_top">ALPS</a> is an open source project to develop codes
+for the accurate simulation of quantum lattice models, such as quantum magnets,
+electronic systems and Bose-Einstein condensates. The main Boost libraries
+used are:
+<a href="../../../libs/graph/index.html" target="_top">graph</a>,
+<a href="../../../libs/random/index.html" target="_top">random</a>,
+<a href="../../../libs/multi_array/index.html" target="_top">multiarray</a>,
+<a href="../../../libs/program_options/index.html" target="_top">program_options</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">lexical_cast</a>,
+<a href="../../../libs/serialization/index.html" target="_top">serialization</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a>,
+<a href="../../../libs/filesystem/index.html" target="_top">filesystem</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/functional/index.html" target="_top">functional</a> and
+<a href="../../../libs/type_traits/index.html" target="_top">type_traits</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Open VRML</strong></span><br><br><a href="http://openvrml.org/" target="_top">Open VRML</a> is a free cross-platform runtime
+for VRML.
+The basic OpenVRML distribution includes libraries you can use to add
+VRML support to an application, and Lookat, a simple stand-alone VRML browser.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Bayes++</strong></span><br><br><a href="http://bayesclasses.sourceforge.net/Bayes++.html" target="_top">Bayes++</a> is an open source
+library that represents and implements a wide variety of numerical algorithms
+for Bayesian Filtering of discrete systems from the
+<a href="http://www.acfr.usyd.edu.au/" target="_top">Australian Centre for Field Robotics</a>.
+Bayes++ makes particularly heavy use of <a href="../../../libs/numeric/ublas/index.html" target="_top">Boost.Ublas</a>
+for matrix and numeric computations.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>The C++/Tk Library</strong></span><br><br><a href="http://cpptk.sourceforge.net" target="_top">The C++/Tk Library</a> is an open source
+C++ interface to the Tk GUI Library.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>GluCat</strong></span><br><br><a href="http://glucat.sourceforge.net/" target="_top">GluCat</a> is a library of template classes
+which model the universal Clifford algebras over the real or complex fields,
+with arbitrary dimension and arbitrary signature.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>OpenMS</strong></span><br><br><a href="http://open-ms.sourceforge.net/main.html" target="_top">OpenMS</a> is an open source C++ library
+for LC/MS data management, reduction, evaluation, visualization, storage and
+sophisticated statistical analyses. It can be used to develop mass
+spectrometry related applications.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>libpdf++</strong></span><br><br><a href="http://libpdfxx.sourceforge.net/doc/index.html" target="_top">libpdf++</a> is an object-oriented
+library for generating PDF (portable document format) files. It is designed
+in a way that the objects in the document are mapped directly to classes
+in the library.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Regina</strong></span><br><br><a href="http://regina.sourceforge.net/" target="_top">Regina</a> is a suite of mathematical software
+for 3-manifold topologists. It focuses upon the study of 3-manifold
+triangulations and includes support for normal surfaces and angle structures.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>MetaFS</strong></span><br><br><a href="http://metafs.sourceforge.net/" target="_top">MetaFS</a> is a daemon for Linux
+(and Linux only) that allows you to access information about your
+files (such as MP3 tags or JPEG's EXIF tags) easily and consistently
+using extended attributes. It also allows you to perform fast searches
+using this information. MetaFS is extensible, so anyone can write plug-ins
+to access new types of metadata.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>The ASN.1 Tool</strong></span><br><br>
+
+Abstract Syntax Notation One (ASN.1) is a
+formal language for abstractly describing messages to be exchanged among an
+extensive range of applications involving the Internet, intelligent network,
+cellular phones, ground-to-air communications, electronic commerce, secure
+electronic services, interactive television, intelligent transportation
+systems, Voice Over IP and others. <br><br><a href="http://iiiasn1.sourceforge.net/main.html" target="_top">The ASN.1 Tool</a> includes two parts :
+an ASN.1 compiler "asnparser" which compiles the Abstract Syntax to c++ files,
+and a runtime library which is used to link with the c++ files generated by
+asnparser. Based on the works of Open H.323 projects, it is developed for
+the needs of H.450 series protocol.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>DGD</strong></span><br><br><a href="http://dgd.sourceforge.net/dgd_home.html" target="_top">DGD</a> (Depression Glass Debug)
+is simple, easy to use C++ ostream extension
+created with a goal to produce nice, readable and easy to understand trace logs</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>FEAR</strong></span><br><br><a href="http://fear.sourceforge.net/" target="_top">FEAR</a> is a language independent
+open-source project providing portable support for the creation of
+genuine Artificial Intelligence within realistic simulated worlds.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>XEngine</strong></span><br><br><a href="http://xengine.sourceforge.net/features.php" target="_top">XEngine</a> is a platform- and
+rendering-API-independent 3D engine for real-time visualization with
+support for programmable graphics pipeline architectures and is implemented in C++.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Spheral++</strong></span><br><br><a href="http://spheral.sourceforge.net/" target="_top">Spheral++</a> is a numerical tool
+for simulating the evolution of a set of fluid or solid materials subject to
+hydrodynamic, gravitational, and radiative effects.
+Spherical++ uses <a href="../../../libs/python/doc/index.html" target="_top">Boost.Python</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>C++ XML Objects</strong></span><br><br><a href="http://cppxmlobj.sourceforge.net/" target="_top">C++ XML Objects</a> is a framework for persisting
+hierarchies of C++ objects to and from XML.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>HippoDraw</strong></span><br><br><a href="http://www.slac.stanford.edu/grp/ek/hippodraw/index.html" target="_top">HippoDraw</a> provides a
+highly interactive data analysis environment.
+HippoDraw uses <a href="../../../libs/python/doc/index.html" target="_top">Boost.Python</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Orocos</strong></span><br><br><a href="http://people.mech.kuleuven.ac.be/~psoetens/orocos/doc/orocos-control-manual.html" target="_top">The Orocos Robot Control Software Application Framework</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>ECell</strong></span><br><br>
+
+The <a href="http://www.e-cell.org/" target="_top">E-Cell Project</a> is an international research
+project aiming at developing necessary theoretical supports, technologies
+and software platforms to allow precise whole cell simulation.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>VCS Made Easy</strong></span><br><br><a href="http://vcsme.sourceforge.net/" target="_top">VCS Made Easy</a>,
+or vcsme for short, is an utility whose main
+purpose is to simplify the maintenance of file trees managed by a version
+control system, such as the well known CVS or Subversion. Simply put,
+it automates the process of bringing all these directories to an up-to-date
+status with a single and simple command.<br><br><span class="emphasis"><em>"The following Boost libraries were used:
+<a href="../../../libs/format/index.html" target="_top">Format</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">Smart Pointers</a>,
+<a href="../../../libs/utility/index.html" target="_top">Utility (noncopyable)</a> and
+<a href="../../../libs/filesystem/index.html" target="_top">Filesystem</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Monotone</strong></span><br><br><a href="http://www.venge.net/monotone/" target="_top">Monotone</a>
+is a free distributed version control system. It provides
+ a simple, single-file transactional version store, with fully disconnected
+ operation and an efficient peer-to-peer synchronization protocol. It
+ understands history-sensitive merging, lightweight branches, integrated
+ code review and 3rd party testing. It uses cryptographic version naming
+ and client-side RSA certificates. It has good internationalization support,
+ has no external dependencies, runs on linux, solaris, OSX, windows, and
+ other unixes, and is licensed under the GNU GPL.<br><br><span class="emphasis"><em>"The followind Boost libraries were used:
+<a href="../../../libs/date_time/index.html" target="_top">Date-Time</a>,
+<a href="../../../libs/filesystem/index.html" target="_top">Filesystem</a>,
+<a href="../../../libs/conversion/index.html" target="_top">Conversion</a>,
+<a href="../../../libs/optional/index.html" target="_top">Optional</a>,
+<a href="../../../libs/random/index.html" target="_top">Random</a>,
+<a href="../../../libs/regex/index.html" target="_top">Regex</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">Smart Pointers</a>,
+<a href="../../../libs/static_assert/index.html" target="_top">Static Assertions</a>,
+<a href="../../../libs/tokenizer/index.html" target="_top">Tokenizer</a>,
+<a href="../../../libs/tuple/index.html" target="_top">Tuple</a> and
+<a href="../../../libs/test/index.html" target="_top">Test</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Hydranode Engine</strong></span><br><br><a href="http://hydranode.com/" target="_top">Hydranode Engine</a>
+is a plugin-driven P2P client engine that relies
+heavily on Boost libraries. Hydranode codebase is licenced under GNU
+GPL, and is developed mainly by Alo Sarv. Currently in Beta phase,
+Hydranode runs on wide range of platforms, including Windows, Linux,
+BSD, Mac OS, Solaris etc.<br><br><span class="emphasis"><em>"Hydranode Engine and plugins rely heavily on the following Boost
+libraries: Bind, Function, Lambda, MultiIndex, Signals, Threads,
+SmartPtr, Format, LexicalCast. Other Boost libraries being used
+include FileSystem, StringAlgo, DateTime, ProgramOptions, Spirit,
+Random, Tokenizer, TypeTraits, Tribool, Tuple and Any. Once Boost 1.33
+is released, I'm also looking forward to using Boost.IOStreams library
+in Hydranode.<br><br>
+
+All complex data structures in Hydranode are implemented using
+MultiIndex containers, which significantly reduced development time
+and kept code clean. Format is being used for all text formatting.
+Having Threads and FileSystem libraries available made cross-platform
+development lot easier in those areas."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Hugin</strong></span><br><br>
+
+With <a href="http://hugin.sourceforge.net/" target="_top">hugin</a> you can assemble a mosiac of
+photographs into a complete
+immersive panorama, stitch any series of overlapping pictures and much more.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Enblend</strong></span><br><br><a href="http://enblend.sourceforge.net/" target="_top">Enblend</a> is a tool for compositing images.
+Given a set of images that overlap
+in some irregular way, Enblend overlays them in such a way that the seam
+between the images is invisible, or at least very difficult to see.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>GNU Source-highlight</strong></span><br><br><a href="http://www.gnu.org/software/src-highlite/source-highlight.html" target="_top">GNU Source-highlight</a>,
+given a source file, produces a document with
+syntax highlighting. The colors and the styles can be specified
+(bold, italics, underline) by means of a configuration file, and some
+other options can be specified at the command line. The output format
+can be HTML, XHTML and ANSI color escape sequences. GNU Source Highlight
+is build around <a href="../../../libs/regex/index.html" target="_top">Boost.Regex</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Luabind</strong></span><br><br><a href="http://luabind.sourceforge.net/" target="_top">Luabind</a> is a library that helps you create
+bindings between C++ and lua. It has the ability to expose functions and classes,
+written in C++, to lua. It will also supply the functionality to define classes
+in lua and let them derive from other lua classes or C++ classes.
+Lua classes can override virtual functions from their C++ baseclasses.
+It is written towards lua 5.0, and does not work with lua 4.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>C++/Tcl</strong></span><br><br><a href="http://cpptcl.sourceforge.net/" target="_top">C++/Tcl</a> is a library that allows the easy
+integration of C++ and Tcl.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>QuantLib</strong></span><br><br>
+
+The <a href="http://quantlib.org/" target="_top">QuantLib</a> project provides a comprehensive software
+framework for quantitative finance. QuantLib is a free/open-source library
+for modeling, trading, and risk management in real-life.
+Boost components used include
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart pointers</a>,
+<a href="../../../libs/iterator/index.html" target="_top">iterators</a>,
+and <a href="../../../libs/test/index.html" target="_top">the test framework</a>.
+</td></tr></tbody>
+</table></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 © 2005 Various Authors</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shrink.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="inhouse.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/who_s_using_boost_/shrink.html b/doc/html/who_s_using_boost_/shrink.html
new file mode 100644
index 0000000000..6fc3f2d015
--- /dev/null
+++ b/doc/html/who_s_using_boost_/shrink.html
@@ -0,0 +1,419 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Shrink Wrapped Boost</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../who_s_using_boost_.html" title="Who's Using Boost?">
+<link rel="prev" href="../who_s_using_boost_.html" title="Who's Using Boost?">
+<link rel="next" href="open.html" title=" Open Source Boost">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../who_s_using_boost_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="open.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="who_s_using_boost_.shrink"></a> Shrink Wrapped Boost</h2></div></div></div>
+<p>
+Boost has found it's way into many products that are available "off the shelf",
+including consumer applications from Adobe, through to business
+middleware from SAP.</p>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Adobe Photoshop CS2</strong></span><br><br><a href="http://www.adobe.com/products/photoshop/main.html" target="_top">Adobe Photoshop CS2</a>
+uses the
+<a href="http://opensource.adobe.com/" target="_top">Adobe Software Libraries</a>, which in
+turn depend upon large parts of Boost. The <a href="http://opensource.adobe.com/" target="_top">Adobe Software Libraries</a> are being rolled
+out across the Adobe product line to provide cross platform user interface logic.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Adobe Indesign</strong></span><br><br><a href="http://www.adobe.com/products/indesign/main.html" target="_top">Adobe Indesign</a> offers
+best of breed page design:
+Indesign and it's asociated SDK depend upon Boost
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/functional/index.html" target="_top">functional</a> and others.
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>SAP NetWeaver</strong></span><br><br><a href="http://www.sap.com/solutions/netweaver/index.epx" target="_top">SAP NetWeaver</a>
+is the technical foundation of mySAP Business Suite solutions,
+SAP xApps composite applications, partner solutions, and customer
+custom-built applications. <a href="../../../libs/regex/index.html" target="_top">Boost.Regex</a>
+provides the regular expression
+implementation for SAP's
+<a href="https://www.sdn.sap.com/sdn/developerareas/abap.sdn?node=linkDnode6-3" target="_top">ABAP language</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Real Networks, Rhapsody</strong></span><br><br>
+
+The <a href="http://www.real.com/" target="_top">Rhapsody Music Service</a> allows its subscribers to legally
+download/transfer/burn over a million songs. The Rhapsody client
+software was built with many Boost libraries.<br><br><span class="emphasis"><em>"<a href="../../../libs/format/index.html" target="_top">boost.format</a>: Boost.Format is top notch. Using it is a bliss.<br><a href="../../../libs/functional/index.html" target="_top">boost.functional</a>,
+<a href="../../../libs/function/index.html" target="_top">boost.function</a>, and <a href="../../../libs/bind/index.html" target="_top">boost.bind</a>: These three libraries,
+along with smart pointer are the most used in our application. I could not imagine
+not having them handy.<br><a href="../../../libs/smart_ptr/index.html" target="_top">boost.smart_ptr</a>: Hands down, the most useful, and used library of the lot!<br><a href="../../../libs/date_time/index.html" target="_top">boost.date_time</a>: Simple to use, effective, does the job. I love the
+flexible input string parsing facilities, and the
+human readable ISO output.<br><a href="../../../libs/iterator/index.html" target="_top">boost.iterators</a>: Wow. Moving legacy iterating interfaces, or
+interfaces that should of been properly designed
+as iterators to STL compliant iterators was easy
+and painless. The gains in functionality to our
+code made by this library are invaluable.<br><a href="../../../libs/regex/index.html" target="_top">boost.regex</a>: When you need it, it works magic.<br><a href="../../../libs/thread/index.html" target="_top">boost.thread</a>: Used to implement the monitor pattern in key areas.<br><a href="../../../libs/preprocessor/index.html" target="_top">boost.preprocessor</a>: Used to implement repetitive unit-test
+code generation. The codebase benefited
+greatly from the clarity boost.preprocessor
+brought."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>McAfee, Managed VirusScan 3</strong></span><br><br><a href="http://www.mcafeesecurity.com/us/products/mcafee/smb/managed_services/managed_vs_smb.htm" target="_top">McAfee Managed VirusScan</a>,
+is an always on, automatic virus protection for desktops
+and servers.<br><br>
+ More details of the Boost libraries used can be found
+<a href="http://betavscan.mcafeeasap.com/beta/docs/readme/Readme.html" target="_top">here</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>DataSolid GmbH Germany, CADdy++ Mechanical Design (c)</strong></span><br><br><a href="http://www.DataSolid.com" target="_top">CADdy++ Mechanical Design professional (c)</a>
+is a fully parametric 3D CAD
+application with unbroken link between 3D
+models and 2D drawings. CADdy++ uses the Boost libraries:
+<a href="../../../libs/any/index.html" target="_top">any</a>,
+<a href="../../../libs/tokenizer/index.html" target="_top">tokenizer</a>,
+<a href="../../../libs/signals/index.html" target="_top">signals</a>,
+<a href="../../../libs/property_map/index.html" target="_top">property_map</a>,
+<a href="../../../libs/array/index.html" target="_top">array</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/utility/operators.htm" target="_top">operators</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuple</a>,
+<a href="../../../libs/random/index.html" target="_top">random</a>.<br><br><span class="emphasis"><em>"Many thanks to all the boost developers for their great work and effort
+spending into boost."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Dimesion 5, Miner3D</strong></span><br><br>
+
+ Data visualization technology enabling advanced data analysis,
+ visualization, sonification and speech applications for business and science.<br>
+
+ The <a href="http://www.miner3D.com" target="_top">Miner3D</a> application provides means for interactive visual analysis of
+ arbitrary tabular data from various data sources. It has a powerful OpenGL-based
+ visualization engine and an intuitive GUI. This combination helps a human eye
+ guide the application of statistical tools and spot the patterns that
+ might otherwise remain hidden.
+<span class="emphasis"><em>"We are using following boost libraries:
+<a href="../../../libs/date_time/index.html" target="_top">Boost.Date Time</a>,
+<a href="../../../libs/variant/index.html" target="_top">Boost.Variant</a>,
+<a href="../../../libs/regex/index.html" target="_top">Boost.Regex</a>,
+<a href="../../../libs/format/index.html" target="_top">Boost.Format</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">Boost.String Algoritms</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">Boost.Smart Pointers</a>,
+<a href="../../../libs/mpl/index.html" target="_top">Boost.MPL</a>,
+<a href="../../../libs/type_traits/index.html" target="_top">Boost.Type Traits</a>,
+<a href="../../../libs/utility/operators.htm" target="_top">Boost.Operators</a>,
+<a href="../../../libs/dynamic_bitset/index.html" target="_top">Boost.Dynamic Bitset</a>,
+<a href="../../../libs/utility/enable_if.html" target="_top">Boost.EnableIf</a>,
+<a href="../../../libs/timer/index.html" target="_top">Boost.Timer</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Synergy, mailIntercept</strong></span><br><br><a href="http://www.mintercept.com" target="_top">mailIntercept</a> from <a href="http://www.synergy.com.br" target="_top">Synergy</a>
+is a mail interceptor service for Exchange Server 2000/2003.<br>
+
+mailIntercept intercepts and interprets the e-mails from a
+LAN using Exchange Server and converts the microsoft proprietary
+format to MIME and passes them to an SMTP filter and returns the
+emails to the Exchange Server as modified by the SMTP filter,
+converted back to the microsoft proprietary format and with its
+features preserved.<br><br>
+
+mailIntercept was built using
+<a href="../../../libs/mpl/index.html" target="_top">boost.mpl</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">boost.string_algo</a>,
+<a href="../../../libs/bind/index.html" target="_top">boost.bind</a>,
+<a href="../../../libs/spirit/phoenix/index.html" target="_top">boost.phoenix</a>,
+<a href="../../../libs/spirit/index.html" target="_top">boost.spirit</a>,
+<a href="../../../libs/ptr_container/index.html" target="_top">boost.ptr_container</a>,
+<a href="../../../libs/serialization/index.html" target="_top">boost.serialization</a>,
+<a href="../../../libs/regex/index.html" target="_top">boost.regex</a>,
+<a href="../../../libs/iterator/index.html" target="_top">boost.iterators</a>,
+<a href="../../../libs/lambda/index.html" target="_top">boost.lambda</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">boost.lexical_cast</a>,
+<a href="../../../libs/utility/operators.htm" target="_top">boost.operators</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">boost.smart_ptr</a>,
+<a href="../../../doc/html/tribool.html" target="_top">boost.tribool</a> and
+<a href="../../../libs/type_traits/index.html" target="_top">boost.type_traits</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Integrated Research P/L, PROGNOSIS IP Telephony Manager and IP Telephony Express</strong></span><br><br><a href="http://www.ir.com" target="_top">PROGNOSIS</a> is a suite of IP telephony management software products,
+ specifically designed to address the key challenges of IP telephony
+ life cycle management, including network-readiness, assessment,
+ pre-deployment assurance testing, and ongoing Day-2 management of
+ Cisco CallManager, Cisco Unity, and Cisco AVVID infrastructure.
+<span class="emphasis"><em>"The Boost libraries used were:
+<a href="../../../libs/any/index.html" target="_top">boost.any</a>,
+ <a href="../../../libs/bind/index.html" target="_top">boost.bind</a>,
+ <a href="../../../libs/function/index.html" target="_top">boost.function</a>,
+ <a href="../../../libs/conversion/lexical_cast.htm" target="_top">boost.lexical_cast</a>,
+ <a href="../../../libs/mpl/index.html" target="_top">boost.mpl</a>,
+ <a href="../../../libs/conversion/cast.htm#numeric_cast" target="_top">boost.numeric_cast</a>,
+ <a href="../../../libs/bind/ref.html" target="_top">boost.ref</a>,
+ <a href="../../../libs/regex/index.html" target="_top">boost.regex</a>,
+ <a href="../../../libs/smart_ptr/index.html" target="_top">boost.smart_ptr</a>,
+ <a href="../../../libs/thread/index.html" target="_top">boost.thread</a>,
+ <a href="../../../libs/type_traits/index.html" target="_top">boost.type_traits</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Kinook Software, Visual Build Professional</strong></span><br><br><a href="http://www.visualbuild.com/" target="_top">Visual Build Professional</a>
+is a tool that enables developers,
+software process engineers, and build specialists to create an
+automated, repeatable process for building their software. Visual Build
+provides built-in support for Microsoft Visual Studio .NET and 2005,
+Visual Basic, Visual C++, Visual J++, SourceSafe, eMbedded Tools,
+Borland Delphi, JBuilder, C++Builder, and more.<br><br>
+
+The following Boost Libraries were used:
+<a href="../../../libs/any/index.html" target="_top">any</a>,
+<a href="../../../libs/bind/mem_fn.html" target="_top">mem_fn</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/static_assert/index.html" target="_top">static_assert</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Kinook Software, Ultra Recall</strong></span><br><br><a href="http://www.ultrarecall.com/" target="_top">Ultra Recall</a>
+is a personal information management (PIM) /
+knowledge management (KM) application for Microsoft Windows. It helps
+you capture, organize, and recall all of your electronic information
+across all the applications that you use.<br><br>
+
+Used the following Boost libraries:
+<a href="../../../libs/format/index.html" target="_top">format</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">shared_ptr</a>,
+<a href="../../../libs/static_assert/index.html" target="_top">static_assert</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Applied Dynamics International, ADvantageDE</strong></span><br><br><a href="http://www.adi.com" target="_top">Applied Dynamics International (ADI)</a>
+provides state-of-the art software and
+hardware tools to the automotive, aerospace, and defense industries to
+design and test embedded control systems. ADI's tools provide advanced capabilities in real-time hardware-in-the-loop
+(HIL) simulation, rapid prototyping, and embedded controller software
+development. We have been a leading supplier of HIL simulation solutions
+since 1957.<br><br>
+
+ADvantageDE is the development environment. It allows simulation models to
+be easily connected to one another or to hardware components for real-time
+simulation. ADvantageDE projects can be created for execution on your PC,
+Unix workstation or on our real-time platforms.<br><br>
+
+ADvantageVI is the point of control and the graphical user interface for
+all of the run-time activities. The run-time architecture includes extensive
+features for interacting with, visualizing, and automating simulation and
+test activities.<br><br>
+
+DasCom provides access to real-time simulation data from most Windows
+applications, such as Micrsoft Excel, National Instruments Labview, etc.<br><br>
+
+The following Boost Libraries are used:
+<a href="../../../libs/array/index.html" target="_top">array</a>,
+<a href="../../../libs/assign/index.html" target="_top">assign</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/crc/index.html" target="_top">crc</a>,
+<a href="../../../libs/dynamic_bitset/index.html" target="_top">dynamic_bitset</a>,
+<a href="../../../libs/utility/enable_if.html" target="_top">enable_if</a>,
+<a href="../../../libs/filesystem/index.html" target="_top">file_system</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/functional/index.html" target="_top">functional</a>,
+<a href="../../../libs/iterator/index.html" target="_top">iterators</a>,
+<a href="../../../libs/lambda/index.html" target="_top">lambda</a>,
+<a href="../../../libs/optional/index.html" target="_top">optional</a>,
+<a href="../../../libs/preprocessor/index.html" target="_top">preprocessor</a>,
+<a href="../../../libs/bind/ref.html" target="_top">ref</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/serialization/index.html" target="_top">serialization</a>,
+<a href="../../../libs/signals/index.html" target="_top">signals</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/static_assert/index.html" target="_top">static_assert</a>,
+<a href="../../../libs/spirit/index.html" target="_top">spirit</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">string_algo</a>,
+<a href="../../../libs/tokenizer/index.html" target="_top">tokenizer</a><a href="../../../libs/tuple/index.html" target="_top">tuple</a>,
+<a href="../../../libs/utility/index.html" target="_top">utility(noncopyable)</a> and
+<a href="../../../libs/variant/index.html" target="_top">variant</a>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>PeerGuardian</strong></span><br><br><a href="http://methlabs.org/projects/peerguardian-2-windows/" target="_top">PeerGuardian 2</a>
+is Methlabs premier IP blocker for Windows.
+With features like support for multiple lists, a list editor,
+automatic updates, and blocking all of IPv4 (TCP, UDP, ICMP, etc),
+PeerGuardian 2 is the safest and easiest way to protect your privacy on P2P.<br><br>
+
+Boost Libraries used include
+<a href="../../../libs/crc/index.html" target="_top">crc</a>,
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/integer/index.html" target="_top">integer</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/functional/index.html" target="_top">functional</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart pointers</a>,
+<a href="../../../libs/conversion/lexical_cast.htm" target="_top">lexical cast</a>,
+<a href="../../../doc/html/string_algo.html" target="_top">string algorithms</a>,
+<a href="../../../libs/random/index.html" target="_top">random</a>,
+<a href="../../../libs/format/index.html" target="_top">format</a>,
+<a href="../../../libs/utility/index.html" target="_top">utility</a>.</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>DECOMSYS::DESIGNER PRO</strong></span><br><br><a href="http://www.decomsys.com/" target="_top">DECOMSYS::DESIGNER PRO</a> enables the user to design
+a highly complex <a href="http://www.flexray.com/" target="_top">FlexRay</a> communication
+system, which is going to be the fundament for tomorrow's
+automotive electronics.<br><br><span class="emphasis"><em>"Boost Libraries used:
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/dynamic_bitset/index.html" target="_top">dynamic_bitset</a>,
+<a href="../../../libs/format/index.html" target="_top">format</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/iterator/index.html" target="_top">iterators</a>,
+<a href="../../../libs/mpl/index.html" target="_top">mpl</a>,
+<a href="../../../libs/multi_index/index.html" target="_top">multi_index</a>,
+<a href="../../../libs/utility/utility.htm#Class_noncopyable" target="_top">noncopyable</a>,
+<a href="../../../libs/utility/operators.htm" target="_top">operators</a>,
+<a href="../../../libs/preprocessor/index.html" target="_top">preprocessor (nice for generating data for unit tests)</a>,
+<a href="../../../libs/program_options/index.html" target="_top">program_options (for the unit test programs)</a>,
+<a href="../../../libs/bind/ref.html" target="_top">ref</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/serialization/index.html" target="_top">serialization</a>,
+<a href="../../../libs/signals/index.html" target="_top">signals</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/spirit/index.html" target="_top">spirit</a>,
+<a href="../../../libs/timer/index.html" target="_top">timer</a> and
+<a href="../../../libs/variant/index.html" target="_top">variant</a><br><br>
+
+We are also planning to use Andreas Huber's fsm library and iostreams
+(together with boost.serialize) once
+they are officially released."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Wise Riddles Software, Audiomatic</strong></span><br><br><a href="http://www.WiseRiddles.com/Audiomatic" target="_top">Audiomatic</a>
+is a tool used to make system-wide macros and then launch those
+macros with a voice command or keyboard shortcut at any time... from any
+Windows application. Audiomatic enables you to launch programs, files, or
+websites; simulate keystrokes; play sounds; speak text; or even run scripts.
+You can do it all with a voice command or keyboard shortcut!
+<span class="emphasis"><em>"Libraries Used:
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart pointers</a>,
+<a href="../../../libs/date_time/index.html" target="_top">date/time</a>,
+<a href="../../../libs/algorithm/string/index.html" target="_top">string</a>,
+<a href="../../../libs/utility/index.html" target="_top">utility (noncopyable, ref)</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/thread/index.html" target="_top">thread</a>,
+<a href="../../../libs/mpl/index.html" target="_top">mpl</a> and
+<a href="../../../libs/type_traits/index.html" target="_top">type traits</a>."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Megahard Software Technologies Inc., Rule in Hell</strong></span><br><br><a href="http://www.ruleinhell.com" target="_top">Rule in Hell</a> is a
+Massively Multiplayer Online Role Playing Game (still in beta).<br><br>
+
+The Boost libs used were:
+<a href="../../../libs/bind/index.html" target="_top">bind</a>,
+<a href="../../../libs/function/index.html" target="_top">function</a>,
+<a href="../../../libs/any/index.html" target="_top">any</a>,
+<a href="../../../libs/tuple/index.html" target="_top">tuples</a>,
+<a href="../../../libs/bind/ref.html" target="_top">ref</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">shared_ptr</a>,
+<a href="../../../libs/type_traits/index.html" target="_top">type_traits</a> and
+<a href="../../../libs/utility/utility.htm#Class_noncopyable" target="_top">noncopyable</a>.<br><br><span class="emphasis"><em>"By far the combination of bind, function, shared_ptr and ref is what we use
+most heavily".</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Dr. Detlef Meyer-Eltz, TextTransformer</strong></span><br><br>
+
+The <a href="http://www.texttransformer.com" target="_top">TextTransformer</a>
+is a Windows IDE for the generation of top down
+parsers with included c++ interpreter code for semantic actions. Both
+can be executed or debugged immediately on single source files or on
+groups of files. Generated parsers can be exported as c++ code
+including as well the interpretable code as any arbitrary other code.
+Tokens are defined as POSIX regular expressions and rules are defined
+in a similar syntax quasi as regular expressions of regular
+expressions. The construction of parse trees and their traversal is
+supported.<br><br><span class="emphasis"><em>"The TextTransformer is essentially based on the boost regex library,
+by which the tokens for a parser can be defined. The lexical_cast and
+the format library are used for the integrated c++ interpreter. For
+the future also an interpreter version of the string_algo part is
+planned. The program_options library will be used too to improve the
+command line version of the texttransformer."</em></span>
+</td></tr></tbody>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<tbody><tr><td class="blurb">
+<span class="bold"><strong>Redshift Software, The Thot Tool</strong></span><br><br><a href="http://thot-tool.com/" target="_top">The Thot Tool</a>
+is an asset management tool for a group of game developers.
+Thot combines assets, both binary and text, with workflow automation
+into a unified whole, and was built using Boost
+<a href="../../../libs/thread/index.html" target="_top">threads</a>,
+<a href="../../../libs/smart_ptr/index.html" target="_top">smart_ptr</a>,
+<a href="../../../libs/regex/index.html" target="_top">regex</a>,
+<a href="../../../libs/mpl/index.html" target="_top">mpl</a>,
+and <a href="../../../libs/type_traits/index.html" target="_top">type_traits</a>.
+</td></tr></tbody>
+</table></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 © 2005 Various Authors</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../who_s_using_boost_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.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="open.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/who_s_using_boost_/submit.html b/doc/html/who_s_using_boost_/submit.html
new file mode 100644
index 0000000000..b652573cd9
--- /dev/null
+++ b/doc/html/who_s_using_boost_/submit.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Submissions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../who_s_using_boost_.html" title="Who's Using Boost?">
+<link rel="prev" href="inhouse.html" title=" In House Boost">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inhouse.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../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="who_s_using_boost_.submit"></a> Submissions</h2></div></div></div>
+<p>
+If you have an application or library that's using Boost and would like to be
+listed here, please post the following information to the
+<a href="http://www.boost.org/more/mailing_lists.htm#main" target="_top">main Boost developer
+mailing list</a>:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+The name of the Application/Product/Service.
+</li>
+<li>
+The name of the company (where appropriate).
+</li>
+<li>
+A paragraph describing the Application/Product/Service.
+</li>
+<li>
+Any information you can provide about which parts of Boost you used,
+ along with any comments you may have on how Boost helped your product
+ development.
+</li>
+<li>
+URLs to your companies home page, and the home page of the
+ Application/Product/Service if there is one.
+</li>
+</ul></div>
+<p>
+Finally, if the subheadings used in the structure of these pages
+don't fit your Product/Application/Service please say so: we're
+always interested to hear how these pages can be improved or better
+structured.</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 © 2005 Various Authors</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inhouse.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../who_s_using_boost_.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/wrapping_int.html b/doc/html/wrapping_int.html
new file mode 100644
index 0000000000..8e80ab74ea
--- /dev/null
+++ b/doc/html/wrapping_int.html
@@ -0,0 +1,84 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template wrapping_int</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id796064" title="Header &lt;boost/date_time/wrapping_int.hpp&gt;">
+<link rel="prev" href="tz_db_base.html" title="Class template tz_db_base">
+<link rel="next" href="wrapping_int2.html" title="Class template wrapping_int2">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tz_db_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id796064"><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="wrapping_int2.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="wrapping_int"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template wrapping_int</span></h2>
+<p>boost::date_time::wrapping_int &#8212; A wrapping integer used to support time durations. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_, int_type_ wrap_val&gt;
+<span class="bold"><strong>class</strong></span> wrapping_int {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> int_type_ int_type;
+
+  <span class="emphasis"><em>// <a href="wrapping_int.html#wrapping_intconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="wrapping_int.html#id660374-bb">wrapping_int</a>(int_type);
+
+  <span class="emphasis"><em>// <a href="wrapping_int.html#id901838-bb">public member functions</a></em></span>
+  <span class="type">int_type</span> <a href="wrapping_int.html#id901843-bb">as_int</a>() <span class="bold"><strong>const</strong></span>;
+  <a href="wrapping_int.html#id963754-bb"><span class="bold"><strong>operator</strong></span> int_type</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">int_type</span> <a href="wrapping_int.html#id821808-bb">add</a>(int_type) ;
+  <span class="type">int_type</span> <a href="wrapping_int.html#id963115-bb">subtract</a>(int_type) ;
+
+  <span class="emphasis"><em>// <a href="wrapping_int.html#id660393-bb">public static functions</a></em></span>
+  <span class="type">int_type</span> <a href="wrapping_int.html#id660398-bb">wrap_value</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1148209"></a><h2>Description</h2>
+<p>In composite date and time types this type is used to wrap at the day boundary. </p>
+<div class="refsect2" lang="en">
+<a name="id1148216"></a><h3>
+<a name="wrapping_intconstruct-copy-destruct"></a><code class="computeroutput">wrapping_int</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id660374-bb"></a>wrapping_int(int_type v);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1148250"></a><h3>
+<a name="id901838-bb"></a><code class="computeroutput">wrapping_int</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id901843-bb"></a>as_int() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><a name="id963754-bb"></a><span class="bold"><strong>operator</strong></span> int_type() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id821808-bb"></a>add(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id963115-bb"></a>subtract(int_type v) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1148348"></a><h3>
+<a name="id660393-bb"></a><code class="computeroutput">wrapping_int</code> public static functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">int_type</span> <a name="id660398-bb"></a>wrap_value() ;</pre></li></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tz_db_base.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id796064"><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="wrapping_int2.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/wrapping_int2.html b/doc/html/wrapping_int2.html
new file mode 100644
index 0000000000..ad3a3de88d
--- /dev/null
+++ b/doc/html/wrapping_int2.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template wrapping_int2</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id796064" title="Header &lt;boost/date_time/wrapping_int.hpp&gt;">
+<link rel="prev" href="wrapping_int.html" title="Class template wrapping_int">
+<link rel="next" href="year_month_day_base.html" title="Struct template year_month_day_base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wrapping_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id796064"><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="year_month_day_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="wrapping_int2"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template wrapping_int2</span></h2>
+<p>boost::date_time::wrapping_int2 &#8212; A wrapping integer used to wrap around at the top. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> int_type_, int_type_ wrap_min, int_type_ wrap_max&gt;
+<span class="bold"><strong>class</strong></span> wrapping_int2 {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> int_type_ int_type;
+
+  <span class="emphasis"><em>// <a href="wrapping_int2.html#wrapping_int2construct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="wrapping_int2.html#id931224-bb">wrapping_int2</a>(int_type);
+
+  <span class="emphasis"><em>// <a href="wrapping_int2.html#id1002416-bb">public member functions</a></em></span>
+  <span class="type">int_type</span> <a href="wrapping_int2.html#id1002421-bb">as_int</a>() <span class="bold"><strong>const</strong></span>;
+  <a href="wrapping_int2.html#id1002438-bb"><span class="bold"><strong>operator</strong></span> int_type</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">int_type</span> <a href="wrapping_int2.html#id905778-bb">add</a>(int_type) ;
+  <span class="type">int_type</span> <a href="wrapping_int2.html#id936262-bb">subtract</a>(int_type) ;
+
+  <span class="emphasis"><em>// <a href="wrapping_int2.html#id1031949-bb">public static functions</a></em></span>
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a href="wrapping_int2.html#id1031954-bb">wrap_value</a>() ;
+  <span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a href="wrapping_int2.html#id1031967-bb">min_value</a>() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1148581"></a><h2>Description</h2>
+<p>Bad name, quick impl to fix a bug -- fix later!! This allows the wrap to restart at a value other than 0. Currently this only works if wrap_min == 1 </p>
+<div class="refsect2" lang="en">
+<a name="id1148589"></a><h3>
+<a name="wrapping_int2construct-copy-destruct"></a><code class="computeroutput">wrapping_int2</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><a name="id931224-bb"></a>wrapping_int2(int_type v);</pre>
+<p>If initializing value is out of range of [wrap_min, wrap_max], value will be initialized to closest of min or max </p>
+</li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1148628"></a><h3>
+<a name="id1002416-bb"></a><code class="computeroutput">wrapping_int2</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id1002421-bb"></a>as_int() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><a name="id1002438-bb"></a><span class="bold"><strong>operator</strong></span> int_type() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id905778-bb"></a>add(int_type v) ;</pre></li>
+<li><pre class="literallayout"><span class="type">int_type</span> <a name="id936262-bb"></a>subtract(int_type v) ;</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1148726"></a><h3>
+<a name="id1031949-bb"></a><code class="computeroutput">wrapping_int2</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a name="id1031954-bb"></a>wrap_value() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>unsigned</strong></span> <span class="bold"><strong>long</strong></span></span> <a name="id1031967-bb"></a>min_value() ;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wrapping_int.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id796064"><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="year_month_day_base.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/wvalue.html b/doc/html/wvalue.html
new file mode 100644
index 0000000000..baf5da2819
--- /dev/null
+++ b/doc/html/wvalue.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function wvalue</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="program_options/reference.html#id857530" title="Header &lt;boost/program_options/value_semantic.hpp&gt;">
+<link rel="prev" href="value.html" title="Function value">
+<link rel="next" href="bool_switch.html" title="Function bool_switch">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="bool_switch.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="wvalue"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function wvalue</span></h2>
+<p>boost::program_options::wvalue &#8212; </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; T, <span class="bold"><strong>wchar_t</strong></span> &gt; *</span> wvalue();
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><a href="typed_value.html" title="Class template typed_value">typed_value</a>&lt; T, <span class="bold"><strong>wchar_t</strong></span> &gt; *</span> wvalue(T * v);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1276788"></a><h2>Description</h2>
+<p>Creates a typed_value&lt;T&gt; instance. This function is the primary method to create value_semantic instance for a specific type, which can later be passed to 'option_description' constructor. </p>
+</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 © 2002-2004 Vladimir Prus</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="value.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="program_options/reference.html#id857530"><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="bool_switch.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/xtime.html b/doc/html/xtime.html
new file mode 100644
index 0000000000..23d3edc326
--- /dev/null
+++ b/doc/html/xtime.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct xtime</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="threads/reference.html#id997727" title="Header &lt;boost/thread/xtime.hpp&gt;">
+<link rel="prev" href="id869148.html" title="Type xtime_clock_types">
+<link rel="next" href="threads/faq.html" title="Frequently Asked Questions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id869148.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id997727"><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="threads/faq.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="xtime"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct xtime</span></h2>
+<p>boost::xtime &#8212; <p>An object of type <a href="xtime.html" title="Struct xtime">xtime</a>
+ defines a time that is used to perform high-resolution time operations.
+ This is a temporary solution that will be replaced by a more robust time
+ library once available in Boost.</p></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"><strong>struct</strong></span> xtime {
+
+  <span class="emphasis"><em>platform-specific-type</em></span> sec;
+};
+
+<span class="emphasis"><em>// <a href="xtime.html#id1208423-bb">creation</a></em></span>
+<span class="type"><span class="bold"><strong>int</strong></span></span> <a href="xtime.html#xtime_get">xtime_get</a>(<a href="xtime.html" title="Struct xtime">xtime</a>*, <span class="bold"><strong>int</strong></span>);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1565845"></a><h2>Description</h2>
+<p>The <a href="xtime.html" title="Struct xtime">xtime</a> type is used to represent a point on
+ some time scale or a duration in time. This type may be proposed for the C standard by
+ Markus Kuhn. provides only a very minimal implementation of this
+ proposal; it is expected that a full implementation (or some other time
+ library) will be provided in Boost as a separate library, at which time
+ will deprecate its own implementation.</p>
+<p><span class="bold"><strong>Note</strong></span> that the resolution is
+ implementation specific. For many implementations the best resolution
+ of time is far more than one nanosecond, and even when the resolution
+ is reasonably good, the latency of a call to <code class="computeroutput">xtime_get()</code>
+ may be significant. For maximum portability, avoid durations of less than
+ one second.</p>
+<div class="refsect2" lang="en">
+<a name="id1565881"></a><h3>
+<a name="id1208423-bb"></a><code class="computeroutput">xtime</code> creation</h3>
+<div class="orderedlist"><ol type="1"><li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="xtime_get"></a>xtime_get(<a href="xtime.html" title="Struct xtime">xtime</a>* xtp, <span class="bold"><strong>int</strong></span> clock_type);</pre>
+<p><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Postconditions</span></b>:
+
+ <code class="computeroutput">xtp</code> represents the current point in
+ time as a duration since the epoch specified by
+ <code class="computeroutput">clock_type</code>.<br><b xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"><span class="term">Returns</span></b>:
+
+ <code class="computeroutput">clock_type</code> if successful, otherwise 0.</p>
+</li></ol></div>
+</div>
+</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 © 2001-2003 William E. Kempf</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="id869148.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="threads/reference.html#id997727"><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="threads/faq.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/year_based_generator.html b/doc/html/year_based_generator.html
new file mode 100644
index 0000000000..c5cc6c5181
--- /dev/null
+++ b/doc/html/year_based_generator.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template year_based_generator</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id1109842" title="Header &lt;boost/date_time/date_generators.hpp&gt;">
+<link rel="prev" href="date_generator_parser.html" title="Class template date_generator_parser">
+<link rel="next" href="partial_date.html" title="Class template partial_date">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_generator_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="partial_date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="year_based_generator"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template year_based_generator</span></h2>
+<p>boost::date_time::year_based_generator &#8212; Base class for all generators that take a year and produce a date. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> year_based_generator {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::calendar_type calendar_type;
+  <span class="bold"><strong>typedef</strong></span> calendar_type::year_type year_type;    
+
+  <span class="emphasis"><em>// <a href="year_based_generator.html#year_based_generatorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="year_based_generator.html#id1043252-bb">year_based_generator</a>();
+  <a href="year_based_generator.html#id1043254-bb">~year_based_generator</a>();
+
+  <span class="emphasis"><em>// <a href="year_based_generator.html#id833152-bb">public member functions</a></em></span>
+  <span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a href="year_based_generator.html#id907655-bb">get_date</a>(year_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a href="year_based_generator.html#id930309-bb">to_string</a>() <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1073618"></a><h2>Description</h2>
+<p>This class is a base class for polymorphic function objects that take a year and produce a concrete date.
+</p>
+<div class="refsect2" lang="en">
+<a name="id1073625"></a><h3>
+<a name="year_based_generatorconstruct-copy-destruct"></a><code class="computeroutput">year_based_generator</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id1043252-bb"></a>year_based_generator();</pre></li>
+<li><pre class="literallayout"><a name="id1043254-bb"></a>~year_based_generator();</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1073674"></a><h3>
+<a name="id833152-bb"></a><code class="computeroutput">year_based_generator</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> date_type</span> <a name="id907655-bb"></a>get_date(year_type y) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>virtual</strong></span> std::string</span> <a name="id930309-bb"></a>to_string() <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="date_generator_parser.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id1109842"><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="partial_date.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/year_functor.html b/doc/html/year_functor.html
new file mode 100644
index 0000000000..cdd8ef8664
--- /dev/null
+++ b/doc/html/year_functor.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template year_functor</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id797437" title="Header &lt;boost/date_time/adjust_functors.hpp&gt;">
+<link rel="prev" href="week_functor.html" title="Class template week_functor">
+<link rel="next" href="c_local_adjustor.html" title="Class template c_local_adjustor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="week_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="c_local_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="year_functor"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template year_functor</span></h2>
+<p>boost::date_time::year_functor &#8212; Functor to iterate by a year adjusting for leap years. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> date_type&gt;
+<span class="bold"><strong>class</strong></span> year_functor {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> date_type::duration_type duration_type;
+
+  <span class="emphasis"><em>// <a href="year_functor.html#year_functorconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="year_functor.html#id1001680-bb">year_functor</a>(<span class="bold"><strong>int</strong></span>);
+
+  <span class="emphasis"><em>// <a href="year_functor.html#id901726-bb">public member functions</a></em></span>
+  <span class="type">duration_type</span> <a href="year_functor.html#id901286-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="year_functor.html#id940173-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1039035"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1039039"></a><h3>
+<a name="year_functorconstruct-copy-destruct"></a><code class="computeroutput">year_functor</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1001680-bb"></a>year_functor(<span class="bold"><strong>int</strong></span> f);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1039078"></a><h3>
+<a name="id901726-bb"></a><code class="computeroutput">year_functor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id901286-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id940173-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="week_functor.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id797437"><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="c_local_adjustor.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/year_month_day_base.html b/doc/html/year_month_day_base.html
new file mode 100644
index 0000000000..51a135b37f
--- /dev/null
+++ b/doc/html/year_month_day_base.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template year_month_day_base</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id975767" title="Header &lt;boost/date_time/year_month_day.hpp&gt;">
+<link rel="prev" href="wrapping_int2.html" title="Class template wrapping_int2">
+<link rel="next" href="gregorian_calendar.html" title="Class gregorian_calendar">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wrapping_int2.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975767"><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="gregorian_calendar.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="year_month_day_base"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template year_month_day_base</span></h2>
+<p>boost::date_time::year_month_day_base &#8212; Allow rapid creation of ymd triples of different types. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> YearType, <span class="bold"><strong>typename</strong></span> MonthType, <span class="bold"><strong>typename</strong></span> DayType&gt;
+<span class="bold"><strong>struct</strong></span> year_month_day_base {
+  <span class="emphasis"><em>// types</em></span>
+  <span class="bold"><strong>typedef</strong></span> YearType  year_type; 
+  <span class="bold"><strong>typedef</strong></span> MonthType month_type;
+  <span class="bold"><strong>typedef</strong></span> DayType   day_type;  
+
+  <span class="emphasis"><em>// <a href="year_month_day_base.html#year_month_day_baseconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="year_month_day_base.html#id1108449-bb">year_month_day_base</a>(YearType, MonthType, DayType);
+
+  <span class="emphasis"><em>// <a href="year_month_day_base.html#id891630-bb">public member functions</a></em></span>
+
+  YearType year;
+  MonthType month;
+  DayType day;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1148973"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1148978"></a><h3>
+<a name="year_month_day_baseconstruct-copy-destruct"></a><code class="computeroutput">year_month_day_base</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id1108449-bb"></a>year_month_day_base(YearType year, MonthType month, DayType day);</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1149013"></a><h3>
+<a name="id891630-bb"></a><code class="computeroutput">year_month_day_base</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"></ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="wrapping_int2.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id975767"><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="gregorian_calendar.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/years_duration.html b/doc/html/years_duration.html
new file mode 100644
index 0000000000..b77ad92258
--- /dev/null
+++ b/doc/html/years_duration.html
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template years_duration</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id798566" title="Header &lt;boost/date_time/date_duration_types.hpp&gt;">
+<link rel="prev" href="months_duration.html" title="Class template months_duration">
+<link rel="next" href="date_facet.html" title="Class template date_facet">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="months_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="date_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="years_duration"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template years_duration</span></h2>
+<p>boost::date_time::years_duration &#8212; additional duration type that represents a logical year </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> base_config&gt;
+<span class="bold"><strong>class</strong></span> years_duration {
+<span class="bold"><strong>public</strong></span>:
+  <span class="emphasis"><em>// <a href="years_duration.html#years_durationconstruct-copy-destruct">construct/copy/destruct</a></em></span>
+  <a href="years_duration.html#id928004-bb">years_duration</a>(int_rep);
+  <a href="years_duration.html#id976999-bb">years_duration</a>(special_values);
+
+  <span class="emphasis"><em>// <a href="years_duration.html#id1071330-bb">public member functions</a></em></span>
+  <span class="type">int_rep</span> <a href="years_duration.html#id1072994-bb">number_of_years</a>() <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="years_duration.html#id793040-bb">get_neg_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">duration_type</span> <a href="years_duration.html#id938984-bb">get_offset</a>(<span class="bold"><strong>const</strong></span> date_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="years_duration.html#id1078815-bb"><span class="bold"><strong>operator</strong></span>==</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type"><span class="bold"><strong>bool</strong></span></span> <a href="years_duration.html#id1044222-bb"><span class="bold"><strong>operator</strong></span>!=</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">years_type</span> <a href="years_duration.html#id971521-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">years_type &amp;</span> <a href="years_duration.html#id830443-bb"><span class="bold"><strong>operator</strong></span>+=</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) ;
+  <span class="type">years_type</span> <a href="years_duration.html#id941858-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">years_type &amp;</span> <a href="years_duration.html#id996907-bb"><span class="bold"><strong>operator</strong></span>-=</a>(<span class="bold"><strong>const</strong></span> years_type &amp;) ;
+  <span class="type">years_type</span> <a href="years_duration.html#id997865-bb"><span class="bold"><strong>operator</strong></span> *</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">years_type &amp;</span> <a href="years_duration.html#id970931-bb"><span class="bold"><strong>operator</strong></span> *=</a>(<span class="bold"><strong>const</strong></span> int_type) ;
+  <span class="type">years_type</span> <a href="years_duration.html#id970648-bb"><span class="bold"><strong>operator</strong></span>/</a>(<span class="bold"><strong>const</strong></span> int_type) <span class="bold"><strong>const</strong></span>;
+  <span class="type">years_type &amp;</span> <a href="years_duration.html#id1076009-bb"><span class="bold"><strong>operator</strong></span>/=</a>(<span class="bold"><strong>const</strong></span> int_type) ;
+  <span class="type">months_type</span> <a href="years_duration.html#id998285-bb"><span class="bold"><strong>operator</strong></span>+</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+  <span class="type">months_type</span> <a href="years_duration.html#id1038071-bb"><span class="bold"><strong>operator</strong></span>-</a>(<span class="bold"><strong>const</strong></span> months_type &amp;) <span class="bold"><strong>const</strong></span>;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1045291"></a><h2>Description</h2>
+<p>A logical year enables things like: "date(2002,Mar,2) + years(2) -&gt; 2004-Mar-2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month (ie date(2001-Feb-28) + years(3) -&gt; 2004-Feb-29). </p>
+<div class="refsect2" lang="en">
+<a name="id1045297"></a><h3>
+<a name="years_durationconstruct-copy-destruct"></a><code class="computeroutput">years_duration</code> construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id928004-bb"></a>years_duration(int_rep num);</pre></li>
+<li><pre class="literallayout"><a name="id976999-bb"></a>years_duration(special_values sv);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id1045345"></a><h3>
+<a name="id1071330-bb"></a><code class="computeroutput">years_duration</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type">int_rep</span> <a name="id1072994-bb"></a>number_of_years() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id793040-bb"></a>get_neg_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">duration_type</span> <a name="id938984-bb"></a>get_offset(<span class="bold"><strong>const</strong></span> date_type &amp; d) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1078815-bb"></a><span class="bold"><strong>operator</strong></span>==(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id1044222-bb"></a><span class="bold"><strong>operator</strong></span>!=(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type</span> <a name="id971521-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type &amp;</span> <a name="id830443-bb"></a><span class="bold"><strong>operator</strong></span>+=(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type</span> <a name="id941858-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type &amp;</span> <a name="id996907-bb"></a><span class="bold"><strong>operator</strong></span>-=(<span class="bold"><strong>const</strong></span> years_type &amp; rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type</span> <a name="id997865-bb"></a><span class="bold"><strong>operator</strong></span> *(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type &amp;</span> <a name="id970931-bb"></a><span class="bold"><strong>operator</strong></span> *=(<span class="bold"><strong>const</strong></span> int_type rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type</span> <a name="id970648-bb"></a><span class="bold"><strong>operator</strong></span>/(<span class="bold"><strong>const</strong></span> int_type rhs) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">years_type &amp;</span> <a name="id1076009-bb"></a><span class="bold"><strong>operator</strong></span>/=(<span class="bold"><strong>const</strong></span> int_type rhs) ;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id998285-bb"></a><span class="bold"><strong>operator</strong></span>+(<span class="bold"><strong>const</strong></span> months_type &amp; m) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">months_type</span> <a name="id1038071-bb"></a><span class="bold"><strong>operator</strong></span>-(<span class="bold"><strong>const</strong></span> months_type &amp; m) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="months_duration.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id798566"><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="date_facet.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/doc/html/ymd_formatter.html b/doc/html/ymd_formatter.html
new file mode 100644
index 0000000000..a1ed1342f0
--- /dev/null
+++ b/doc/html/ymd_formatter.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template ymd_formatter</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="The Boost C++ Libraries">
+<link rel="up" href="date_time/doxy.html#id891955" title="Header &lt;boost/date_time/date_formatting.hpp&gt;">
+<link rel="prev" href="month_formatter.html" title="Class template month_formatter">
+<link rel="next" href="date_formatter.html" title="Class template date_formatter">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../boost.png"></td>
+<td align="center"><a href="../../index.htm">Home</a></td>
+<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../people/people.htm">People</a></td>
+<td align="center"><a href="../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="month_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="date_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="ymd_formatter"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template ymd_formatter</span></h2>
+<p>boost::date_time::ymd_formatter &#8212; Convert ymd to a standard string formatting policies. </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"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ymd_type, <span class="bold"><strong>typename</strong></span> format_type, <span class="bold"><strong>typename</strong></span> charT = <span class="bold"><strong>char</strong></span>&gt;
+<span class="bold"><strong>class</strong></span> ymd_formatter {
+<span class="bold"><strong>public</strong></span>:
+
+  <span class="emphasis"><em>// <a href="ymd_formatter.html#id1037451-bb">public static functions</a></em></span>
+  <span class="type">std::basic_string&lt; charT &gt;</span> <a href="ymd_formatter.html#id1037456-bb">ymd_to_string</a>(ymd_type) ;
+  <span class="type">std::string</span> <a href="ymd_formatter.html#id1104276-bb">ymd_to_string</a>(ymd_type) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id1069026"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id1069029"></a><h3>
+<a name="id1037451-bb"></a><code class="computeroutput">ymd_formatter</code> public static functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type">std::basic_string&lt; charT &gt;</span> <a name="id1037456-bb"></a>ymd_to_string(ymd_type ymd) ;</pre>
+<p>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type">std::string</span> <a name="id1104276-bb"></a>ymd_to_string(ymd_type ymd) ;</pre>
+<p>This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </p>
+</li>
+</ol></div>
+</div>
+</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 © 2001-2005 CrystalClear Software, Inc</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="month_formatter.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="date_time/doxy.html#id891955"><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="date_formatter.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>